Это официальный документ, описывающий взаимодействие с сервисом онлайн-бронирования Altegio. API позволяет сторонним разработчикам выполнять большинство операций с платформой Altegio. При проектировании методов мы стремились придерживаться архитектуры REST .
200запросы в минуту или 5в секунду на IP-адрес.https://api.alteg.io/api/v1Если у вас возникли трудности при работе с API, внимательно изучите документацию, включая необходимые заголовки, параметры и структуру тела запроса в примере JSON.
Если у вас возникли трудности с решением проблемы самостоятельно, свяжитесь с нами по адресу api@alteg.io . Пожалуйста, укажите в сообщении URL-адрес запроса, заголовки, текст запроса и полученный ответ.
Интеграционный API Altegio включает две группы методов:
Для доступа к первой и второй группам методов требуется авторизация партнёра , то есть передача его уникального хеш-ключа. API-запросы авторизуются в соответствии с RFC 6749 «Resource Owner Password Credentials Grant» . При выполнении API-запросов HTTP-заголовок авторизации должен включать ключ доступа в следующем формате:
Authorization: Bearer <partner token>
Чтобы получить этот ключ, вам необходимо зарегистрироваться в торговой площадке — он будет находиться в разделе «Учетная запись разработчика», «Настройки учетной записи», на вкладке «Данные учетной записи».
Чтобы получить API-ключ пользователя, используйте метод auth или, если вы создаёте интеграционное приложение, ключ, расположенный в настройках приложения в разделе «Доступ к API». Сам ключ также необходимо передать в заголовке запроса (после ключа партнёра, через запятую):
Authorization: Bearer <partner token>, User <user token>
Необходима ли авторизация пользователя для работы с конкретными сущностями, указано в описаниях форматов данных и примерах запросов.
Все даты в API представлены в виде строк в формате ISO 8601.
"2025-09-21T23:00:00.000+03:00"
Длительность обслуживания и другие временные параметры указываются в секундах . Например, 15-минутное обслуживание следует представить следующим образом:
{ "length": 900 }
API позволяет работать с основными сущностями платформы:
Компания Представляет собой хозяйствующий субъект в системе.
Пользователи могут управлять одной или несколькими компаниями в зависимости от назначенных им прав доступа. Не все пользователи имеют доступ ко всем настройкам. Для изменения определенных настроек требуется API-ключ пользователя с соответствующими привилегиями.
Категории услуг Все услуги, предлагаемые компанией, организованы в категории услуг.
Запись на обслуживание обычно оформляется для конкретных услуг, предоставляемых сотрудниками компании. Каждая услуга включает такие параметры, как стоимость и продолжительность.
Встречи с сотрудниками обычно бронируются у конкретного сотрудника или ресурса (например, комнаты для йоги или массажного стола).
График работы У каждого сотрудника есть график работы — временные интервалы, в течение которых сотрудник работает с клиентами.
Временные интервалы Доступные временные интервалы, в течение которых можно запланировать встречу с сотрудником.
Приём — временной интервал, в течение которого конкретный сотрудник оказывает услуги определённому клиенту. Сотрудник занят во время приёма.
Клиент Лицо, которое планирует или получает услуги от компании.
Для работы с данными в API Altegio используются четыре основные структуры:
Сущность — отдельный элемент с уникальными свойствами и параметрами, такими как перечисленные выше. Сущности можно извлекать, изменять или удалять.
Коллекция сущностей. Группа сущностей, например, список компаний или список услуг, предлагаемых компаниями. Сущности можно добавлять в коллекцию или удалять из неё.
Коммуникационная сущность определяет отношения между сущностями, например, связь между сотрудником и услугой, указывающую на то, что сотрудник предоставляет данную услугу. Коммуникационные сущности также могут иметь собственные свойства, например, индивидуальную цену услуги, установленную для конкретного сотрудника.
Коллекция коммуникационных сущностей. Набор отношений между сущностями, например, список услуг, предлагаемых сотрудником, и связанных с ними свойств. Вы можете добавлять отношения внутри коллекции или управлять ими.
Возвращает список ролей пользователей вместе с разрешениями для каждой роли.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| включать | Массив строк Значение элемента : "user_permissions" Запрошенный набор включенных моделей. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
| успех | Логическое значение ( статус успешного ответа ) Статус ответа. |
Массив объектов ( Модель объекта «Роль пользователя» ) | |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
{- "success": true,
- "data": [
- {
- "slug": "worker",
- "title": "Worker",
- "description": "Provides services",
- "weight": 1,
- "user_permissions": [
- {
- "slug": "timetable_access",
- "title": "Appointment calendar",
- "hint": "",
- "is_recommended": true,
- "is_editable": true,
- "default_value": true,
- "entity_name": null,
- "children": [
- {
- "slug": "timetable_position_id",
- "title": "View the schedule and post records",
- "hint": "",
- "is_recommended": true,
- "is_editable": true,
- "default_value": null,
- "entity_name": "position",
- "children": null,
- "options": [
- {
- "title": "All positions",
- "value": 0,
- "is_disabled": false
}, - {
- "title": "Administrator",
- "value": 1234,
- "is_disabled": false
}
], - "type": {
- "slug": "allowed_id",
- "all_access_value": 0,
- "no_access_value": 0
}
}
], - "options": null,
- "type": {
- "slug": "has_group_access",
- "all_access_value": true,
- "no_access_value": false
}
}
]
}
], - "meta": { }
}Возвращает список ролей пользователей и разрешения для каждой роли. Позволяет получить редактируемый статус каждого разрешения пользователя компании ( is_editableполе ). Этот статус зависит от разрешений текущего пользователя.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| ID пользователя необходимый | число Пример: 123 Идентификатор пользователя. |
| включать | Массив строк Значение элемента : "user_permissions" Запрошенный набор включенных моделей. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
| успех | Логическое значение ( статус успешного ответа ) Статус ответа. |
Массив объектов ( Модель объекта «Роль пользователя» ) | |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
{- "success": true,
- "data": [
- {
- "slug": "worker",
- "title": "Worker",
- "description": "Provides services",
- "weight": 1,
- "user_permissions": [
- {
- "slug": "timetable_access",
- "title": "Appointment calendar",
- "hint": "",
- "is_recommended": true,
- "is_editable": true,
- "default_value": true,
- "entity_name": null,
- "children": [
- {
- "slug": "timetable_position_id",
- "title": "View the schedule and post records",
- "hint": "",
- "is_recommended": true,
- "is_editable": true,
- "default_value": null,
- "entity_name": "position",
- "children": null,
- "options": [
- {
- "title": "All positions",
- "value": 0,
- "is_disabled": false
}, - {
- "title": "Administrator",
- "value": 1234,
- "is_disabled": false
}
], - "type": {
- "slug": "allowed_id",
- "all_access_value": 0,
- "no_access_value": 0
}
}
], - "options": null,
- "type": {
- "slug": "has_group_access",
- "all_access_value": true,
- "no_access_value": false
}
}
]
}
], - "meta": { }
}Возвращает роль пользователя и список значений разрешений.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| ID пользователя необходимый | число Пример: 123 ID пользователя. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
| успех | Логическое значение ( статус успешного ответа ) Статус ответа. |
объект ( Модель объекта «Разрешения и роль пользователя» ) Данные о разрешениях и ролях пользователя | |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
{- "success": true,
- "data": {
- "is_editable": true,
- "staff_id": 12345,
- "user_role": "owner",
- "user_permissions": [
- {
- "slug": "timetable_access",
- "value": true
}, - {
- "slug": "timetable_position_id",
- "value": 0
}, - {
- "slug": "auth_list_allowed_ip",
- "value": ""
}
]
}, - "meta": { }
}Обновляет роль и разрешения пользователя, а также сотрудника, прикрепленного к этому пользователю.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| ID пользователя необходимый | число Пример: 123 ID пользователя. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
| роль_пользователя | нить Перечисление : «работник» «администратор» «бухгалтер» «менеджер» «владелец» Название роли |
Массив предметов Список значений разрешений пользователя | |
| staff_id | число Идентификатор сотрудника, прикрепленный к пользователю |
| успех | Логическое значение ( статус успешного ответа ) Статус ответа. |
объект ( Модель объекта «Разрешения и роль пользователя» ) Данные о разрешениях и ролях пользователя | |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке проверки запроса ) Дополнительные данные об ответах. |
{- "user_role": "worker",
- "user_permissions": [
- {
- "slug": "timetable_access",
- "value": true
}
], - "staff_id": 0
}{- "success": true,
- "data": {
- "is_editable": true,
- "staff_id": 12345,
- "user_role": "owner",
- "user_permissions": [
- {
- "slug": "timetable_access",
- "value": true
}, - {
- "slug": "timetable_position_id",
- "value": 0
}, - {
- "slug": "auth_list_allowed_ip",
- "value": ""
}
]
}, - "meta": { }
}Копирует активного пользователя и его разрешения сразу в несколько компаний. Если пользователь ещё не зарегистрирован в компании, он будет добавлен как активный. Если пользователь уже был приглашён в компанию, будут обновлены только его разрешения, однако ему всё равно потребуется принять приглашение.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| ID пользователя необходимый | число Пример: 123 ID пользователя. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
необходимый | Массив объектов непустой уникальный Список компаний, в которые можно скопировать пользователя |
| успех | Логическое значение ( статус успешного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке проверки запроса ) Дополнительные данные об ответах. |
{- "user_company_links": [
- {
- "company_id": 123,
- "user_permissions": [
- {
- "slug": "timetable_access",
- "value": true
}
]
}
]
}{- "success": true,
- "data": null,
- "meta": { }
}Удаляет активного пользователя из нескольких компаний одновременно.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| ID пользователя необходимый | число Пример: 123 ID пользователя. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
необходимый | Массив объектов непустой уникальный Список компаний, из которых нужно удалить пользователя |
| успех | Логическое значение ( статус успешного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке проверки запроса ) Дополнительные данные об ответах. |
{- "user_company_links": [
- {
- "company_id": 123
}
]
}{- "success": true,
- "data": null,
- "meta": { }
}Эта функция позволяет вам легко управлять расписаниями встреч (в настоящее время не поддерживается) и мероприятий.
Вы можете создать несколько серий расписаний для разных дней недели и настроить каждую из них в соответствии со своими потребностями. Для каждой серии можно указать конкретных сотрудников, временные интервалы, метки, ресурсы и многое другое.
Найдите расписание на основе связанной с ним встречи или события или на основе связанной с ним встречи или события.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| тип_сущности необходимый | нить Перечисление : "запись" "активность" Пример: активность Поиск расписания объекта осуществляется по: |
| entity_id необходимый | число Пример: 123 Поиск выполняется по идентификатору расписания объекта. |
| включать | Массив строк Элементы Enum : "days" "days.events_master" "days.events_labels" "days.events_resource_instances" Запрошенный набор включенных моделей. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
| успех | Логическое значение ( статус успешного ответа ) Статус ответа. |
объект ( Объект модели «Расписание» ) Данные по существующему графику работы в компании. | |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
{- "success": true,
- "data": {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "original_entity_type": "activity",
- "original_entity_id": 123,
- "date_start": "2022-01-01",
- "date_end": "2022-02-01",
- "days": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
]
}, - "meta": { }
}Создает расписание встреч или событий на основе исходной связанной сущности.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| включать | Массив строк Значение элементов : "дни" Запрошенный набор включенных моделей. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
| оригинальный_тип_сущности необходимый | нить Перечисление : "запись" "активность" Тип организации, на котором будет основано расписание: |
| оригинальный_идентификатор_сущности необходимый | число Идентификатор объекта, на котором будет основан график. |
| дата_конца необходимый | string <date> Date of the schedule end. |
required | Array of objects [ 1 .. 7 ] items Each object represents schedule series settings for a specific day of the week. A minimum of 1 and a maximum of 7 schedule series can be defined (one for each day of the week). |
| success | boolean (Successful response status) Response status. |
object (Object of model "Schedule") Data for an existing schedule in a company. | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "original_entity_type": "activity",
- "original_entity_id": 123,
- "date_end": "2022-02-01",
- "days": [
- {
- "day_of_week": "mon",
- "events_master_id": 123,
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_capacity": 4,
- "labels_ids": [
- 123
], - "resource_instances_ids": [
- 123
]
}
]
}{- "success": true,
- "data": {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "original_entity_type": "activity",
- "original_entity_id": 123,
- "date_start": "2022-01-01",
- "date_end": "2022-02-01",
- "days": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
]
}, - "meta": { }
}Updates the settings of a schedule containing appointments or events.
| company_id required | number Example: 123 ID of a company. |
| schedule_id required | number Example: 123 ID of a schedule. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| date_end | string <date> Date of the schedule end. |
| success | boolean (Successful response status) Response status. |
object (Object of model "Schedule") Data for an existing schedule in a company. | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "date_end": "2022-02-01"
}{- "success": true,
- "data": {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "original_entity_type": "activity",
- "original_entity_id": 123,
- "date_start": "2022-01-01",
- "date_end": "2022-02-01",
- "days": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
]
}, - "meta": { }
}Completely deletes a schedule along with all its series and the linked appointments or events.
| company_id required | number Example: 123 ID of a company. |
| schedule_id required | number Example: 123 ID of a schedule. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": null,
- "meta": { }
}Adds a new series to an existing schedule of appointments or events.
| company_id required | number Example: 123 ID of a company. |
| schedule_id required | number Example: 123 ID of a schedule. |
| include | Array of strings Items Enum: "events_master" "events_labels" "events_resource_instances" "events" Requested set of an included models. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| day_of_week required | string Enum: "mon" "tue" "wed" "thu" "fri" "sat" "sun" The day of the week for the schedule series. |
| events_master_id required | number The ID of the staff member assigned to the events in the schedule series. |
| events_time required | string Start time of the events in the schedule series, formatted as HH:MM:SS. |
| events_duration required | number Duration of each event in the schedule series, in seconds. |
| events_capacity required | number The capacity of activities in the schedule series. For appointments, this should be set to 1. |
| labels_ids | Array of numbers An array of label IDs associated with the events in the schedule series. |
| resource_instances_ids | Array of numbers An array of resource instance IDs used in the events of the schedule series. |
| success | boolean (Successful response status) Response status. |
object (Object of model "Schedule Series") Data for an existing schedule series in a company. | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "day_of_week": "mon",
- "events_master_id": 123,
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_capacity": 4,
- "labels_ids": [
- 123
], - "resource_instances_ids": [
- 123
]
}{- "success": true,
- "data": {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
], - "events": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "event_status": "stable",
- "event_datetime": "2022-01-24 14:00:00",
- "event_entity_type": "activity",
- "event_entity_id": 123,
- "is_entity_master_changed": false,
- "is_entity_datetime_changed": false,
- "is_entity_duration_changed": false,
- "is_entity_labels_changed": false,
- "is_entity_resource_instances_changed": false
}
]
}, - "meta": { }
}Updates the settings of a schedule series for appointments or events.
| company_id required | number Example: 123 ID of a company. |
| schedule_id required | number Example: 123 ID of a schedule. |
| day_id required | number Example: 123 ID of a schedule series. |
| include | Array of strings Items Enum: "events_master" "events_labels" "events_resource_instances" "events" Requested set of an included models. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| force required | boolean Flag for force override of manual changes in scheduled appointments/events. |
| events_master_id | number The ID of the staff member assigned to the events in the schedule series. |
| events_time | string Start time of the events in the schedule series, formatted as HH:MM:SS. |
| events_duration | number Duration of each event in the schedule series, in seconds. |
| events_capacity | number The capacity of activities in the schedule series. For appointments, this should be set to 1. |
| labels_ids | Array of numbers An array of label IDs associated with the events in the schedule series. |
| resource_instances_ids | Array of numbers An array of resource instance IDs used in the events of the schedule series. |
| success | boolean (Successful response status) Response status. |
object (Object of model "Schedule Series") Data for an existing schedule series in a company. | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "force": false,
- "events_master_id": 123,
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_capacity": 4,
- "labels_ids": [
- 123
], - "resource_instances_ids": [
- 123
]
}{- "success": true,
- "data": {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
], - "events": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "event_status": "stable",
- "event_datetime": "2022-01-24 14:00:00",
- "event_entity_type": "activity",
- "event_entity_id": 123,
- "is_entity_master_changed": false,
- "is_entity_datetime_changed": false,
- "is_entity_duration_changed": false,
- "is_entity_labels_changed": false,
- "is_entity_resource_instances_changed": false
}
]
}, - "meta": { }
}Deletes a schedule series and all appointments or events linked to it.
| company_id required | number Example: 123 ID of a company. |
| schedule_id required | number Example: 123 ID of a schedule. |
| day_id required | number Example: 123 ID of a schedule series. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": null,
- "meta": { }
}Печатает список событий запланированных записей/действий.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| schedule_id необходимый | число Пример: 123 Идентификатор расписания. |
| day_id необходимый | число Пример: 123 Идентификатор серии расписания. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
| успех | Логическое значение ( статус успешного ответа ) Статус ответа. |
Массив объектов ( Объект модели «Событие назначения/событие в расписании» ) | |
объект ( метаобъект с количеством результатов ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
{- "success": true,
- "data": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "event_status": "stable",
- "event_datetime": "2022-01-24 14:00:00",
- "event_entity_type": "activity",
- "event_entity_id": 123,
- "is_entity_master_changed": false,
- "is_entity_datetime_changed": false,
- "is_entity_duration_changed": false,
- "is_entity_labels_changed": false,
- "is_entity_resource_instances_changed": false,
- "entity_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "entity_datetime": "2022-01-24 14:00:00",
- "entity_duration": 3600,
- "entity_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "entity_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
], - "meta": {
- "count": 10
}
}Создает клиентский график с серией встреч и мероприятий на основе существующего расписания.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| schedule_id необходимый | число Пример: 123 Идентификатор расписания. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
| клиент_идентификатор необходимый | число Идентификатор клиента для создания клиентского расписания. |
| comer_id | число Идентификатор прихода клиента для создания клиентского графика. |
| schedule_days_ids необходимый | Массив чисел [ 1 .. 7 ] элементов Идентификаторы серий расписания, минимум 1 серия, максимум 7 серий. |
| успех | Логическое значение ( статус успешного ответа ) Статус ответа. |
объект ( Объект модели «Расписание клиента» ) Данные по текущему графику работы с клиентами в компании. | |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке проверки запроса ) Дополнительные данные об ответах. |
{- "client_id": 123,
- "comer_id": 123,
- "schedule_days_ids": [
- 123
]
}{- "success": true,
- "data": {
- "id": 123,
- "loyalty_abonement_id": null,
- "final_day": "2022-01-01 12:12:12",
- "days": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
]
}, - "meta": { }
}Обновляет расписание клиента, прикрепляя или отсоединяя ряд расписаний, что приводит к созданию или удалению встреч для будущих событий.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| schedule_id необходимый | число Пример: 123 Идентификатор расписания. |
| client_schedule_id необходимый | число Пример: 123 Идентификатор клиентского расписания. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
| schedule_days_ids необходимый | Массив чисел [ 1 .. 7 ] элементов Идентификаторы серий расписания, минимум 1 серия, максимум 7 серий. |
| успех | Логическое значение ( статус успешного ответа ) Статус ответа. |
объект ( Объект модели «Расписание клиента» ) Данные по текущему графику работы с клиентами в компании. | |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке проверки запроса ) Дополнительные данные об ответах. |
{- "schedule_days_ids": [
- 123
]
}{- "success": true,
- "data": {
- "id": 123,
- "loyalty_abonement_id": null,
- "final_day": "2022-01-01 12:12:12",
- "days": [
- {
- "id": 123,
- "created_at": "2022-01-01 12:12:12",
- "updated_at": "2022-01-01 12:12:12",
- "deleted_at": null,
- "timetable_event_schedule_id": 123,
- "day_of_week": "mon",
- "events_time": "14:00:00",
- "events_duration": 3600,
- "events_master": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Staff"
}
}, - "events_labels": [
- {
- "id": 123,
- "title": "Label",
- "color": "#ff0000"
}
], - "events_resource_instances": [
- {
- "id": 123,
- "title": "Resource #1",
- "resource_id": 123
}
]
}
]
}, - "meta": { }
}Удаляет расписание клиента, включая все связанные с ним будущие встречи для запланированных событий.
| company_id необходимый | число Пример: 123 Идентификатор компании. |
| schedule_id необходимый | число Пример: 123 Идентификатор расписания. |
| client_schedule_id необходимый | число Пример: 123 Идентификатор клиентского расписания. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json Должно быть равно |
| Тип контента необходимый | нить Пример: application/json Должно быть равно |
| успех | Логическое значение ( статус успешного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
| мета | объект ( пустой метаобъект ) Дополнительные данные об ответах. |
{- "success": true,
- "data": null,
- "meta": { }
}Настройка уведомлений с помощью мастера в витрине уведомлений включает несколько этапов:
После завершения регистрации пользователь должен быть перенаправлен на этот URL в браузере вместе со всеми необходимыми данными, необходимыми партнерскому сервису.
| идентификатор_салона необходимый | число Идентификатор местоположения. |
| идентификатор_приложения необходимый | число Идентификатор приложения. |
| api_key | число API-ключ для модуля обмена сообщениями. |
| webhook_urls | Массив строк Массив веб-перехватчиков |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке проверки запроса ) Дополнительные данные об ответах. |
{- "salon_id": 123,
- "application_id": 123,
- "api_key": "2f181e2a-5c22-4ae7-9d9b-07104f312c28",
}{- "success": false,
- "data": null,
- "meta": {
- "message": "Authentication needed."
}
}Настройки интеграции партнёрского сервиса необходимо отправить на этот адрес. После их получения приложение будет настроено и установлено для соответствующей локации.
| идентификатор_салона необходимый | число Идентификатор местоположения. |
| идентификатор_приложения необходимый | число Идентификатор приложения. |
| api_key | число API-ключ для модуля обмена сообщениями. |
| webhook_urls | Массив строк Массив веб-перехватчиков |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке ответа ) Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
объект ( сообщение об ошибке проверки запроса ) Дополнительные данные об ответах. |
{- "salon_id": 123,
- "application_id": 123,
- "api_key": "2f181e2a-5c22-4ae7-9d9b-07104f312c28",
}{- "success": false,
- "data": null,
- "meta": {
- "message": "Authentication needed."
}
}На этот адрес необходимо отправить уведомление через вебхук, чтобы проинформировать Altegio об успешном платеже, произведенном на стороне партнерского сервиса.
| идентификатор_салона необходимый | число Идентификатор местоположения. |
| идентификатор_приложения необходимый | число Идентификатор приложения. |
| валюта_iso необходимый | нить Валюта ISO (например: USD, EUR, BYN) |
| сумма_платежа необходимый | число Сумма платежа. |
| дата_платежа необходимый | нить Дата и время платежа. |
| период_от необходимый | нить Дата начала оплачиваемого периода (включительно). |
| период_до необходимый | нить Дата окончания оплачиваемого периода (включительно). |
| успех | boolean (Status.) Status. |
object Data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "salon_id": 123,
- "application_id": 123,
- "currency_iso": "EUR",
- "payment_sum": 990.99,
- "payment_date": "2022-01-01 10:10:00",
- "period_from": "2022-01-01 10:10:00",
- "period_to": "2022-02-01 10:10:00"
}{- "success": true,
- "data": {
- "id": 123
}
}This endpoint is used to send the list of SMS sender names available to the user. The user will be able to choose from any of the provided sender names.
| salon_id required | number Location ID. |
| application_id required | number Application ID |
| short_names required | Array of strings Array of SMS names |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "salon_id": 123,
- "application_id": 123,
- "short_names": [
- "Altegio",
- "AL"
]
}{- "success": false,
- "data": null,
- "meta": {
- "message": "Authentication needed."
}
}Chargeback Notice
| payment_id required | number Example: 123 Payment ID. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": false,
- "data": null,
- "meta": {
- "message": "Authentication needed."
}
}Note: This is not a callable endpoint.
This section describes how Altegio sends webhook notifications when specific events occur in the application-to-location lifecycle. The following event types are currently supported:
You can configure the webhook URL for receiving these events in your Altegio Developer Account.
| salon_id required | number Location ID. |
| application_id required | number Application ID. |
| event required | string Enum: "uninstall" "freeze" Event Slug. |
| partner_token required | string Bearer token of the developer's company (to verify the origin of the webhook) |
{- "salon_id": 123,
- "application_id": 123,
- "event": "uninstall",
- "partner_token": "yasdfkjah2328aj"
}This endpoint is used to retrieve information about the application's installation status in a specific location.
| salon_id required | number Location ID |
| application_id required | number Application ID |
| success | boolean (Successful response status) Response status. |
object | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": {
- "logs": [
- {
- "changed_at": "2022-06-27 12:20:02",
- "status_from": "uninstalled",
- "status_to": "pending",
- "source": "marketplace"
}, - {
- "changed_at": "2022-06-27 12:22:02",
- "status_from": "pending",
- "status_to": "active",
- "source": "partner_api"
}
], - "payments": [
- {
- "id": 1523,
- "payment_sum": 1523.12,
- "payment_date": "2022-06-27 12:22:02",
- "is_refunded": false,
- "period_from": "2022-06-27 00:00:00",
- "period_to": "2022-07-27 00:00:00"
}
], - "connection_status": {
- "status": "active",
- "created_at": "2022-06-27 12:20:02"
}
}
}This endpoint is used by the partner service to uninstall the application from a specific location.
| salon_id required | number Location ID |
| application_id required | number Application ID |
| success | boolean (Successful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": null,
- "meta": { }
}This endpoint retrieves a list of locations that have connected a specific application, along with detailed information about each.
| application_id required | number Application ID |
| page required | number Page number |
| count required | number <= 1000 Number of elements per page |
| success | boolean Success status (true) |
Array of objects Array of objects | |
| meta | Array of objects Metadata (empty array) |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
{- "success": true,
- "data": [
- {
- "id": "1050",
- "title": "La Visage",
- "short_descr": "Beauty saloon",
- "active": "1",
- "phone": "+1-315-555-0175",
- "country_id": 7,
- "schedule": "",
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "phone_confirmation": true,
- "active_staff_count": 2,
- "next_slot": "2023-03-23T10:10:00+0300",
- "app_ios": "",
- "app_android": "",
- "currency_short_title": "R",
- "group_priority": 900
}, - {
- "id": "1051",
- "title": "La Visage 2",
- "short_descr": "Beauty saloon",
- "active": "1",
- "phone": "+1-315-555-0175",
- "country_id": 7,
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "phone_confirmation": false,
- "active_staff_count": 3,
- "next_slot": "2023-03-23T10:10:00+0300",
- "app_ios": "",
- "app_android": "",
- "currency_short_title": "R",
- "group_priority": 901
}
], - "meta": { }
}To enable SMS sending, the operator must provide the API endpoint (url_operator) to which Altegio will send the relevant requests.
API requests are authorized using the RFC 6749 Resource Owner Password Credentials Grant method. Each request must include an Authorization HTTP header containing an access token in the following format:
Authorization: Bearer
If an error occurs while sending an SMS, the response will include the appropriate HTTP status code. In some cases, a descriptive error message will also be included in the response body. All API methods may return the following error codes: |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| destination_params required | object an object containing the send ID and phone number parameters |
| from required | string Sender name |
| text required | string departure text |
| type required | string sending type (sms, viber) |
| dispatch_type required | string mailing type (service - service, adds - advertising) |
| delivery_callback_url необходимый | нить URL, на который отправляются статусы сообщений |
[- {
- "id": "232674",
- "ext_id": "609aff0fca92466d6a1747dd83f05943a8c9600d"
}, - {
- "id": "232674",
- "error_code": 32,
- "error_message": "explicit error message"
}
]При смене пароля пользователем его API-ключ генерируется заново. В результате требуется повторная авторизация с новым API-ключом.
| Атрибут | Тип | Описание |
|---|---|---|
| авторизоваться | нить | Номер телефона пользователя в формате 380000000000 или адрес его электронной почты. |
| пароль | нить | Пароль пользователя |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Партнерский токен на предъявителя |
| авторизоваться необходимый | нить Номер телефона или адрес электронной почты |
| пароль необходимый | нить Пароль |
| идентификатор | целое число < int32 > ID пользователя |
| user_token | нить User_token пользователя |
| имя | нить Имя пользователя |
| телефон | нить Телефон пользователя |
| авторизоваться | нить Логин пользователя |
| электронная почта | нить Почтовый адрес пользователя |
| аватар | нить Путь к файлу аватара пользователя |
| is_approved | булев Проверен ли пользователь в системе? |
{- "login": "testuser@alteg.io",
- "password": "testpass"
}{- "id": 123456,
- "user_token": "wec23fh8cDfFV4432fc352456",
- "name": "James Smith",
- "phone": "+1-315-555-0175",
- "login": "j.smith",
- "email": "j.smith@example.com",
- "is_approved": true
}Когда пользователь онлайн-аккаунта меняет свой пароль, его ключ API меняется и требуется новая авторизация.
| Атрибут | Тип | Описание |
|---|---|---|
| авторизоваться | нить | Номер телефона посетителя в формате 380000000000 или адрес его электронной почты. |
| пароль | нить | Пароль посетителя |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Партнерский токен на предъявителя |
| авторизоваться необходимый | нить Номер телефона или адрес электронной почты |
| пароль необходимый | нить Пароль |
| идентификатор | целое число < int32 > ID пользователя |
| user_token | нить User_token пользователя |
| имя | нить Имя пользователя |
| телефон | нить Телефон пользователя |
| авторизоваться | нить Логин пользователя |
| электронная почта | нить Почтовый адрес пользователя |
| аватар | нить Путь к файлу аватара пользователя |
{- "login": "testuser@alteg.io",
- "password": "testpass"
}{- "id": 123456,
- "user_token": "wec23fh8cDfFV4432fc352456",
- "name": "James Smith",
- "phone": "+1-315-555-0175",
- "login": "j.smith",
- "email": "j.smith@example.com",
}Каждый клиент Altegio может создать неограниченное количество форм онлайн-бронирования с различным дизайном и сценариями бронирования.
Как правило, идентификатор формы бронирования встроен в поддомен. Например: https://b123.alteg.io , где 123 — это идентификатор формы бронирования. Этот идентификатор можно использовать для получения всех необходимых параметров для реализации онлайн-бронирования и определения, относится ли бронирование к конкретной компании или к сети компаний.
Для виджетов сети вам также потребуется вызвать метод [GET] /companies с фильтром company_id, чтобы получить список компаний, доступных для бронирования.
Объект, содержащий настройки формы онлайн-бронирования, включает в себя следующие поля:
| Поле | Тип | Описание |
|---|---|---|
| шаги | Массив объектов | Шаги формы бронирования с пользовательскими настройками |
| стиль | объект | Настройки дизайна формы бронирования |
| group_id | число | Идентификатор цепочки компаний (0 — если форма бронирования предназначена для компании, не входящей в цепочку) |
| company_id | число | Идентификатор компании (всегда возвращается, используется для получения дополнительных настроек) |
| телефонное_подтверждение | булев | Нужно ли подтверждать телефон по СМС (если groupid=0 (не групповая форма), иначе смотрите в настройках каждой компании отдельно) |
| язык | нить | Язык формы бронирования (код из массива langs) |
| языки | массив объектов | Список языков виджетов |
| комментарий_требуется | булев | Обязательно ли заполнять поле с комментарием при бронировании? |
| google_analytics_id | нить | Идентификатор Google Аналитики |
| facebook_pixel_id | нить | Идентификатор пикселя Facebook |
| sms_enabled | булев | Доступна ли отправка СМС? |
| comment_input_name | строка (необязательно) | Заголовок поля с комментарием к бронированию (если не задано, используется значение по умолчанию) |
| booking_notify_text | строка (необязательно) | Текст уведомления, отображаемого (если установлено) на этапе ввода контактных данных |
| is_show_privacy_policy | булев | Необходимо ли отображать пользователю текст соглашения о политике обработки персональных данных? |
| специализация_отображения_режим | число | Отображает специализацию или должность сотрудника. 0 — Специализация, 1 — Должность |
Массив шагов состоит из объектов, имеющих следующие поля:
| Поле | Тип | Описание | Для каких шагов указано |
|---|---|---|---|
| шаг | нить | Шаг город/компания/услуга/специалист/дата/время/контакт/подтверждение | |
| заголовок | нить | Название шага для отображения в интерфейсе | Для всех |
| число | число | На каком номере должен отображаться этот шаг (начиная с 1) | Для всех |
| по умолчанию | строка или число | Значение по умолчанию для этого шага, если установлено | Для всех, кроме даты и времени |
| скрытый | булев | Скрывать этот шаг при бронировании или нет? | Для всех |
| дата_скрыта | булев | Скрывать этот шаг при бронировании или нет? | Для даты и времени |
| время_скрытое | булев | Скрывать этот шаг при бронировании или нет? | Для даты и времени |
| дата_по умолчанию | нить | Значение по умолчанию для этого шага, если установлено | Для даты и времени |
| время_по умолчанию | число | Значение по умолчанию для этого шага, если установлено | Для даты и времени |
Объект стиля имеет следующие поля:
| Поле | Тип | Описание |
|---|---|---|
| показать заголовок | булев | Показывать заголовок и меню или нет |
| логотип | нить | Путь к изображению логотипа |
| фон_заголовка | нить | Путь к фоновому изображению субтитров |
| фон_меню | нить | Путь к фоновому изображению меню |
| первичная палитра | нить | Основной цвет формы (все цвета из списка: красный, розовый, фиолетовый, темно-фиолетовый, индиго, синий, светло-голубой, голубой, бирюзовый, зеленый, светло-зеленый, лайм, желтый, янтарный, оранжевый, темно-оранжевый, коричневый, серый, сине-серый, белый, черный) |
| accentPalette | нить | Форма вторичного цвета (полупрозрачная обложка субтитра) |
| warnPalette | нить | Цвет кнопок формы бронирования |
| фоновая палитра | нить | Цвет фона формы бронирования |
| идентификатор необходимый | число Пример: 1 идентификатор формы бронирования |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Партнерский токен на предъявителя |
| успех | булев Статус успешного выполнения (истина) |
объект Объект с данными | |
| мета | Массив объектов Метаданные (пустой массив) |
{- "success": true,
- "data": {
- "steps": [
- {
- "step": "master",
- "title": "Choose a specialist",
- "num": 2,
- "hidden": "0",
- "default": -1
}, - {
- "step": "service",
- "title": "Choose a service",
- "num": 1,
- "hidden": "1",
- "default": "196"
}, - {
- "step": "datetime",
- "title": "Select session date and time",
- "num": 3,
- "hidden": false,
- "date_hidden": "0",
- "time_hidden": "0",
- "date_default": "2025-09-21T23:00:00.000+03:00",
- "time_default": "27900"
}, - {
- "step": "contact",
- "title": "Business Example",
- "num": 3,
- "hidden": false,
- "default": 0
}, - {
- "step": "comfirm",
- "title": "Business Example",
- "num": 4,
- "hidden": false,
- "default": 0
}
], - "style": {
- "show_header": true,
- "main_color": "666",
- "secondary_color": "999",
- "buttons_color": "FFF"
}, - "group_id": 1,
- "company_id": 1,
- "phone_confirmation": false,
- "lang": "en-US",
- "langs": [
- {
- "id": 2,
- "code": "en-US",
- "title": "English"
}, - {
- "id": 4,
- "code": "lv-LV",
- "title": "Latviešu valoda"
}, - {
- "id": 5,
- "code": "et-EE",
- "title": "Eesti keel"
}, - {
- "id": 6,
- "code": "lt-LT",
- "title": "Lietuva"
}, - {
- "id": 7,
- "code": "uk-UK",
- "title": "Ukrainian"
}, - {
- "id": 8,
- "code": "fr-FR",
- "title": "Français"
}, - {
- "id": 9,
- "code": "it-IT",
- "title": "Italiano"
}, - {
- "id": 10,
- "code": "es-ES",
- "title": "Español"
}, - {
- "id": 13,
- "code": "ka-KA",
- "title": "ქართული"
}, - {
- "id": 14,
- "code": "hy-AM",
- "title": "Հայերեն"
}, - {
- "id": 15,
- "code": "kk-KK",
- "title": "Kazakh tili"
}, - {
- "id": 16,
- "code": "hr-HR",
- "title": "Hrvatski jezik"
}, - {
- "id": 17,
- "code": "cs-CS",
- "title": "český jazyk"
}, - {
- "id": 18,
- "code": "ro-RO",
- "title": "Limba Română"
}, - {
- "id": 19,
- "code": "cn-CN",
- "title": "中文"
}, - {
- "id": 20,
- "code": "ar-AR",
- "title": "العَرَبِيَّة"
}, - {
- "id": 21,
- "code": "bg-BG",
- "title": "Bulgarian"
}, - {
- "id": 22,
- "code": "he-IL",
- "title": "עברית"
}, - {
- "id": 23,
- "code": "hu-HU",
- "title": "Magyar nyelv"
}, - {
- "id": 24,
- "code": "Lt-sr-SP",
- "title": "Srpski jezik"
}, - {
- "id": 25,
- "code": "sk-SK",
- "title": "Slovenský jazyk"
}, - {
- "id": 26,
- "code": "mn-MN",
- "title": "Mongol hal"
}, - {
- "id": 27,
- "code": "az-AZ",
- "title": "Azərbaycan dili"
}, - {
- "id": 28,
- "code": "pl-PL",
- "title": "Polszczyzna"
}, - {
- "id": 30,
- "code": "sl-SL",
- "title": "Slòvēnskī"
}
], - "comment_required": false,
- "metrika_counter_id": "50217133",
- "google_analytics_id": "UA-125358345-1",
- "facebook_pixel_id": "2218788388343154",
- "app_metrika_id": "46ab3b93-1bc6-457d-82f0-c1b51f39b01e",
- "sms_enabled": true
}, - "meta": [ ]
}Перевод доступен на один из языков:
| langCode необходимый | нить Пример: en-US Код языка. Один из наборов: 'lv-LV', 'en-US', 'ee-EE', 'lt-LT', 'de-DE', 'uk-UK'. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Партнерский токен на предъявителя |
объект | |
объект | |
объект | |
объект | |
объект | |
| и | нить |
| условия соглашения | нить |
| обработка данных | нить |
| лицензионное соглашение | нить |
| персональные данные | нить |
| купить-для | нить |
объект | |
объект | |
объект | |
объект | |
| назад | нить |
| backCity | нить |
| назадФилиалы | нить |
| backRecordType | нить |
| филиалы | нить |
| мой_профиль | нить |
| о нас | нить |
объект | |
| в | нить |
| на | нить |
| час | нить |
| м | нить |
| от | нить |
| dist_m | нить |
| dist_km | нить |
| вчера | нить |
| сегодня | нить |
| завтра | нить |
| Закрывать | нить |
| Да | нить |
| Нет | нить |
| обновить | нить |
| online_record_disabled | нить |
| online_record_disabled_long_text | нить |
объект | |
объект | |
объект | |
объект | |
объект | |
| сохранять | нить |
| продолжить | нить |
объект | |
объект | |
объект | |
объект | |
объект | |
объект | |
объект | |
объект | |
объект | |
объект | |
объект | |
объект | |
объект | |
объект | |
объект | |
| Янв | нить |
| февраль | нить |
| Маршировать | нить |
| март | нить |
| апрель | нить |
| Может | нить |
| Джун | нить |
| Июль | нить |
| август | нить |
| сентябрь | нить |
| Октябрь | нить |
| ноябрь | нить |
| Декабрь | нить |
объект | |
объект | |
| пейзаж | нить |
{- "404": {
- "not-found": "It seems that this page does not exist.",
- "not-found-record": "Such an entry does not exist.",
- "go-home": "To main"
}, - "action": {
- "send": "send"
}, - "tips": {
- "terms": {
- "prefix": "By clicking \"Submit\", you accept",
- "of-use": "Terms of Use",
- "personal-policy": "Privacy Policy"
}, - "review-sent": "Review sent",
- "your-mark": "your mark",
- "leave-a-review": "Leave a review",
- "leave-a-tip-to-a-specialist": "Leave a tip for a specialist",
- "credited": "Tip credited",
- "visit-amount": "Visit amount",
- "will-be-written-off": "Will be written off",
- "at-time": "v",
- "rate-specialist-to-sent-feedback": "Rate a specialist to send feedback",
- "title": "Tips",
- "tips-required": "Please select a tip amount",
- "review-or-tips-required": "It seems that there is nothing to send to a specialist yet",
- "enter-sum": "Enter amount",
- "custom-sum": "Own amount",
- "cancel-tips": "Cancel tip",
- "bad-sum": "Tipping must be indicated by the amount"
}, - "payment-status": {
- "payment-error": "Payment error. Try again",
- "payment-redirect": "You should be directed to the payment system.",
- "payment-config-error": "Error in setting up the payment system",
- "contact-us-for-questions": "Contact us if you have any questions.",
- "contacts": "Contacts",
- "order-registered": "Application completed",
- "order-paid": "Order has been paid",
- "retry": "Repeat",
- "order-created-successfully": "The order has been successfully created. Our representative will contact you to clarify the details.",
- "order-is-being-processed": "Operation is being processed",
- "get-payment-data": "Receiving payment data",
- "transaction-number": "Transaction number",
- "payment-transaction-info-1": "If you received a check, then the purchase was successfully completed. Check the email address you provided when purchasing.",
- "payment-transaction-info-2": " If the receipt did not arrive, please try again or contact us using the contacts below.",
- "order-number-info": "Provide this number at the time of your visit to redeem your certificate or pass."
}, - "user-data-form": {
- "loyalty-phone-tip": "Provide this number at the time of your visit to redeem your certificate or pass.",
- "name-required": "Name required",
- "email-required": "Email required",
- "loyalty-email": "E-mail for receipt and purchase",
- "agreement-link": "with the terms of the agreement",
- "data-processing-link": "data processing",
- "terms-prefix": "By clicking on the button you agree",
- "proceed": "Checkout",
- "pay": "Pay",
- "phone-code": "The code",
- "phone": "Telephone",
- "invalid-phone": "Invalid number"
}, - "and": "and",
- "terms-of-agreement": "Terms of agreement",
- "data-processing": "Data processing",
- "license-agreement": "License agreement",
- "personal-data": "Your data",
- "buy-for": "Buy for",
- "group_booking": {
- "personal_booking": "Individual services",
- "group_booking": "Group events",
- "choose_group_event": "Choose an event",
- "group_events_available": "Registration available for group events",
- "places": "Places",
- "group_events_is_not_available": "There are no group events for the selected day",
- "group_events_is_not_available_filial": "Group events are not configured in this branch yet",
- "repeat": "Sign up again",
- "duration": "Duration",
- "no_space": "No places",
- "not_found": "There are no events for the selected filters. Try changing your filter options"
}, - "geo": {
- "geo_timeout_error": "Unable to determine your location. You may be out of GPS coverage",
- "geo_timeout_error_android": "Unable to determine your location. You may be out of GPS coverage. If you have geolocation disabled, you need to enable it and restart the application.",
- "geo_access_error": "No access to your location. The application cannot show branches near you. If you have geolocation disabled, you need to enable it and restart the application."
}, - "tooltips": {
- "change_filial": "Now you will always start recording from this branch. You can change the branch through the menu item",
- "change_filial_back_button": "You can also use the back button to change branch"
}, - "prepaid": {
- "required": "prepayment required",
- "allowed": "prepayment is optional",
- "prepaid_sum": "To pay online:",
- "postpaid_sum": "Payment on the spot:"
}, - "back": "Back",
- "backCity": "Cities",
- "backFilials": "Branches",
- "backRecordType": "Record Type",
- "filials": "Branches",
- "my_profile": "Cabinet",
- "about_us": "About Us",
- "record": {
- "show_details": "View details",
- "is_canceled": "Recording canceled",
- "is_canceled_success": "Recording canceled successfully",
- "record": "Recording",
- "place": "Place",
- "master": "Employee",
- "service": "Service",
- "services": "Services",
- "date": "date",
- "past": "Passed",
- "through": "Across",
- "time": "Time",
- "clients_count": "Number of seats:",
- "book_visit": "Make a visit",
- "add_service": "+ Add service",
- "add_master": "+ Add wizard",
- "add_datetime": "+ Add date and time",
- "cancel_record": "Cancel entry",
- "cancel_record_warning": "Once canceled, the recording will not be recoverable.",
- "confirm_cancel_record": "Are you sure you want to cancel the recording?",
- "error_cancel_record": "You cannot unsubscribe",
- "error_cancel_record_new1": "It is not possible to cancel an appointment online. Please contact the administrator.",
- "error_cancel_record_new2_1": "Unable to cancel online booking",
- "error_cancel_record_new2_2": "before visiting. Please contact the administrator.",
- "add_to_google_calendar": "Add to google calendar",
- "booking_success": "You have successfully signed up!",
- "create_new_record": "Sign up more",
- "future_records": "Upcoming sessions",
- "past_records": "Past",
- "change_record_time": "Transfer entry",
- "error_change_record_time": "Unable to reschedule online. Please contact the administrator.",
- "error_change_record_time2_1": "Unable to reschedule online appointment",
- "error_change_record_time2_2": "before visiting. Please contact the administrator.",
- "selected_services": "Selected services",
- "calculate_services": "Services available...",
- "change_record_fail": "Error transferring recording, please try another time",
- "continue_booking": "Continue recording",
- "go_to_registration": "Go to Altegio website",
- "repeat": "Repeat recording",
- "is_deleted": "Your entry has been deleted."
}, - "at": "v",
- "on": "on the",
- "h": "h.",
- "m": "min.",
- "from": "from",
- "dist_m": "m",
- "dist_km": "km",
- "yesterday": "yesterday",
- "today": "today",
- "tomorrow": "tomorrow",
- "Close": "close",
- "Yes": "Yes",
- "No": "Not",
- "refresh": "Refresh",
- "online_record_disabled": "Online registration is disabled. <br> We apologize for the inconvenience caused.",
- "online_record_disabled_long_text": "Online registration is temporarily unavailable. You can still manage your online records in your account, transfer them and delete them.",
- "address": {
- "about": "About company",
- "address": "The address",
- "phone": "Telephone",
- "phones": "Phones",
- "schedule": "Working hours",
- "site": "Site",
- "date_and_time": "date and time",
- "photos": "Photos",
- "details": "More about the salon"
}, - "common": {
- "information": "information",
- "reviews": "reviews",
- "contacts": "contacts"
}, - "notification": {
- "your_city": "What is your city <%- city_name %>?",
- "yes_my_city": "Yes, this is my city",
- "no_my_city": "No, choose a city",
- "read_all": "Read",
- "delete_all": "Delete",
- "deleted_record": "Deleting an entry",
- "record": "Recording",
- "news": "news",
- "review": "Feedback about the master",
- "notify": "Notification",
- "sent": "Sent"
}, - "header": {
- "loyalty_cards": "Loyalty Cards",
- "widget_settings": "Widget settings",
- "settings": "Settings",
- "select_town": "Choose city",
- "select_company": "Choose branch",
- "select_date": "Date picker",
- "select_master": "Employee selection",
- "select_time": "Timing",
- "select_service": "Service selection",
- "input_personal": "Entering contact details",
- "online_record": "Online appointment",
- "selection_of": "Choice",
- "contacts_form": "Registration",
- "record_created": "Post created!",
- "login": "entrance",
- "profile": "Personal Area",
- "my_records": "My notes",
- "record_create_disabled": "Online registration is temporarily unavailable.",
- "master-info": "About employee",
- "notification": "Notifications",
- "my_notifications": "My notifications",
- "none_notifications": "No notifications",
- "cart": "Proof of payment",
- "change_record": "Record transfer",
- "you_booking": "Your order",
- "you_data": "Your data",
- "record": "Recording",
- "actions": "Actions",
- "cancel-record": "Cancel recording",
- "booking_again": "Sign up again",
- "choose_time": "Pick a time",
- "choose_staff": "Choose a specialist",
- "about_service": "About the service",
- "records": "Entries",
- "confirmation": "Confirmation"
}, - "loyalty": {
- "empty-list": "There is nothing here yet",
- "points": {
- "nominative": "score",
- "genitive": "points",
- "plural-genitive": "points"
}, - "no_cards": "You don't have any cards.",
- "no_certificate": "You do not have any certificate.",
- "no_subscription": "You don't have any subscription.",
- "discount": "discount",
- "cashback": "cashback",
- "paid_amount": "Paid",
- "sold_amount": "Sales",
- "visit_count": "Visits",
- "balance": "Accumulated (cashback)",
- "certificate": {
- "services-includes": "What's included",
- "no-restrictions": "No limits",
- "restrictions-only-services": "All services except goods",
- "any-goods": "Any goods",
- "without-goods": "Items not included",
- "without-services": "Services not included",
- "validity": "Validity",
- "validity-without-restrictions": "No expiration date",
- "validity-till": "Before",
- "validity-after-purchase": "since purchase",
- "use-type": "Usage",
- "use-type-multiple": "many times",
- "use-type-single": "once",
- "where-to-use": "Where to use?",
- "where-to-use-show-more": "Show more",
- "where-to-use-all-group": "All over the chain",
- "allow-to-freeze": "Freezing option",
- "title": "Certificate",
- "one-off-use": "Disposable",
- "multi-use": "reusable",
- "denomination": "Denomination",
- "balance": "Remainder"
}, - "subscription": {
- "validity-without-restrictions": "no limit on the number of days",
- "title": "Subscription"
}, - "subscriptions": {
- "all-services": "(all services)",
- "from": "from",
- "valid_until": "Valid until",
- "valid_unlimited": "Validity is not limited",
- "unused": "Subscription has not yet been used",
- "online_sale_button_text": "Buy a certificate or subscription"
}, - "programs": {
- "item_type_id": {
- "any_services_any_goods": "To all services and goods",
- "any_service_no_goods": "For any service",
- "no_services_any_goods": "For any goods",
- "custom_services_no_goods": "For some services",
- "custom_services_any_goods": "For some services and any goods",
- "no_services_custom_goods": "For some products",
- "any_services_custom_goods": "For all services and some products",
- "custom_services_custom_goods": "For some services and products",
- "no_services_no_goods": "Not for services; not for goods"
}, - "determined_action_settings": "Determined by promotion settings"
}
}, - "save": "Save",
- "proceed": "Continue",
- "profile": {
- "name": {
- "saved": "Username changed to",
- "not_known": "Name unknown"
}, - "noFutureRecords": "You have no upcoming sessions",
- "noPastRecords": "You have no past sessions",
- "phone": {
- "confirm": "Verify phone"
}, - "email": {
- "info": "A confirmation email has been sent to you at"
}, - "password": {
- "info": "Password must contain at least eight characters",
- "badPassword": "Wrong password specified",
- "current": "Current Password",
- "new": "New password",
- "invalidTooShort": "",
- "invalidNoDigit": "",
- "invalidNoCapital": "",
- "invalidNoSymbol": ""
}, - "error": "An error occurred while saving data",
- "saved": "Changes to your personal data are saved",
- "contactsDetails": "Contact details",
- "your_records": "Your entries in the salon."
}, - "registration": {
- "registration": "registration",
- "form": {
- "name": "Your name",
- "company_title": "Company name",
- "i_know_promo": "I know promo code",
- "confirm_oferta_1": "I accept the terms",
- "confirm_oferta_2": "contract-offers",
- "submit": "Register",
- "promo": "promo code",
- "unknownError": "A system error has occurred, please try again later"
}
}, - "menu": {
- "account": "Personal data",
- "change_filial": "Change Branch",
- "change_city": "Change city",
- "online_record": "Online booking",
- "about": "About company",
- "change_lang": "Change the language",
- "hide_menu": "Hide menu",
- "login": "To come in",
- "myRecords": "My notes",
- "on-line": "Online appointment",
- "logout": "Log off",
- "my": "Personal Area",
- "favorite": "Favorites",
- "change_password": "password change",
- "header": "Menu",
- "profile": "Profile",
- "loyalty": "My cards",
- "loyalty_subscriptions": "Subscriptions",
- "loyalty_certificates": "Certificates"
}, - "footer": {
- "worked_on": "Works for",
- "worked_on_company_name": "Altegio"
}, - "city": {
- "town_abbreviation": "G.",
- "service_count": "Number of branches:",
- "select_filial": "Branch selection",
- "not_found_cities": "No cities found for your request",
- "search_cities": "Find cities",
- "affiliate": {
- "1": "branch",
- "2": "branch",
- "3": "branches"
}
}, - "company": {
- "list": "List",
- "on_map": "On the map",
- "no_companies_text_1": "You do not have any active company. To set up companies, go to",
- "lk": "Personal account Altegio",
- "no_companies_text_2": "After setting, press the button",
- "no_companies": "No companies",
- "near_session": "The closest available recording session is:",
- "active_master": "Active professionals:",
- "at_o_clock": "v",
- "find_companies": "Find branches",
- "not_found_companies": "No branches found for your search",
- "look_at_the_map": "View on the map"
}, - "steps": {
- "date_and_time": "date and time",
- "staff": {
- "nominative": "Employee",
- "genitive": "employee"
}, - "service": "Service",
- "time": "Time"
}, - "master": {
- "master": "Specialist",
- "skip_select_master": "Skip employee selection",
- "skip_select": "Skip selection",
- "near_session": "Upcoming sessions",
- "nearest_time": "Next time to sign up",
- "no_record": "There are no free sessions for the selected day",
- "no_record_new": "There is no free time for this date. Choose another date or another specialist",
- "no_master": "The employee was fired or no longer works at this branch",
- "any_master": "Irrelevant",
- "record_is_available": "You can sign up",
- "reviews": {
- "nominative": "review",
- "genitive": "recall",
- "plural-genitive": "reviews"
}, - "prepaid": {
- "forbidden": "No prepayment required",
- "allowed": "Prepayment possible",
- "required": "Prepayment required"
}
}, - "cart": {
- "title": "Services selected for payment",
- "confirm": "Confirm Entry",
- "go-to-pay": "Proceed to checkout",
- "confirmed": "Entry Paid",
- "pay-success": "Payment was successful!"
}, - "reviews": {
- "cancelAddReview": "Cancel",
- "later": "Rate later",
- "addReview": "Leave feedback",
- "yourReviewMark": "your mark",
- "reviewFieldLabelText": "your feedback",
- "reviewTitle": "Please rate the quality of the application",
- "reviewMessage": "Write suggestions for improvements",
- "reviewRequestStoreTitle": "Would you like to rate the store?",
- "reviewButton": "Estimate",
- "thanksForReview": "Thanks for the feedback"
}, - "date": {
- "day_of": "Day off",
- "no_record": "Working, no record",
- "have_record": "Working, there is a record",
- "by_month_num": {
- "1": "January",
- "2": "February",
- "3": "March",
- "4": "April",
- "5": "May",
- "6": "June",
- "7": "July",
- "10": "October",
- "11": "November",
- "12": "December",
- "08": "August",
- "09": "September"
}, - "by_month_short": {
- "Jan": "January",
- "Feb": "February",
- "March": "Martha",
- "Mar": "Martha",
- "Apr": "April",
- "May": "May",
- "Jun": "June",
- "Jul": "July",
- "Aug": "august",
- "Sep": "September",
- "Oct": "October",
- "Nov": "November",
- "Dec": "December"
}
}, - "time": {
- "hourCased": {
- "nominative": "hour",
- "genitive": "hours",
- "plural-genitive": "hours"
}, - "weekCased": {
- "nominative": "a week",
- "genitive": "weeks",
- "plural-genitive": "weeks"
}, - "monthCased": {
- "nominative": "month",
- "genitive": "months",
- "plural-genitive": "months"
}, - "yearCased": {
- "nominative": "year",
- "genitive": "of the year",
- "plural-genitive": "years"
}, - "dayCased": {
- "nominative": "day",
- "genitive": "days",
- "plural-genitive": "days"
}, - "minuteCased": {
- "nominative": "minute",
- "genitive": "minutes",
- "accusative": "minute",
- "plural-genitive": "minutes"
}, - "secondCased": {
- "nominative": "second",
- "genitive": "seconds",
- "accusative": "give me a sec",
- "plural-genitive": "seconds"
}, - "at_o_clock": "v",
- "noTimes": "There are no free sessions for the selected day",
- "the_part_of_day": {
- "morning": "Morning",
- "day": "Day",
- "evening": "Evening"
}, - "by_week_day": {
- "Mon": "Mon",
- "Tue": "Tue",
- "Wed": "Wed",
- "Thu": "Thu",
- "Fri": "Fri",
- "Sat": "Sat",
- "Sun": "Sun"
}, - "by_full_week_day": {
- "Monday": "Monday",
- "Tuesday": "Tuesday",
- "Wednesday": "Wednesday",
- "Thursday": "Thursday",
- "Friday": "Friday",
- "Saturday": "Saturday",
- "Sunday": "Sunday"
}
}, - "service": {
- "selected": "Selected",
- "selected_service_count": "Selected services:",
- "noServicesAndEvents": "No promotions or services found for your search",
- "noMoreServices": "There are no services that can be booked together with the selected services",
- "noMoreService": "There are no services that can be booked together with the selected service",
- "search": "Search...",
- "sale": "Stock",
- "services": "Services",
- "add": "Add a service",
- "add_short": "Add",
- "currency_short": "R.",
- "services_pref": {
- "1": "service",
- "2": "services",
- "3": "services"
}, - "order_on": "Order for",
- "price": "price",
- "price_not_available": "Price not specified",
- "price_from": "from",
- "price_to": "before",
- "unavailable_service": "no longer available for online registration. Would you like to choose another?",
- "unavailable_services": "are no longer available for online booking. Would you like to choose others?"
}, - "confirm": {
- "confirm": "Sign up",
- "show_order_details": "View order details",
- "order_details": "Order Details",
- "smsNotify": "Reminder",
- "dontSend": "Do not send",
- "order_on": "Service order",
- "service_sale": "Promotion Services",
- "license_text": "Duis placerat lectus et justo mollis, nec sodales orci congue. Vestibulum semper non urna ac suscipit. Vestibulum tempor, ligula id laoreet hendrerit, massa augue iaculis magna, sit amet dapibus tortor ligula non nibh.",
- "accept": "By clicking the \"Register\" button, you agree to",
- "i_accept": "I accept",
- "i_agree": "I agree",
- "accept_inline": "By clicking the \"Register\" button, you agree",
- "accept_personal_data_inline": "processing of personal data",
- "and_accept": "and accept",
- "terms_of_agreement": "terms of the user agreement",
- "terms_of_agreement_inline": "user agreement terms",
- "how_my_personal_data_will_be_processed": "how my personal data will be processed",
- "first_name": "Name",
- "phone": "Telephone",
- "will_be_used_to_confirm": "Will be used for confirmation",
- "comment": "A comment",
- "email": "Email",
- "recording": "Sign up",
- "code_and_phone_num": "Code and phone number",
- "phone_confirm_short": "Confirm number",
- "phone_already_exists": "The specified number is already in use.",
- "phone_confirm": "Verify phone number",
- "phone_confirm_button": "Confirm",
- "defaultError": "System error:",
- "you_want_to_book": "Do you want to enroll",
- "your_master": "your master",
- "waiting_for_you_at_the_address": "We are waiting for you at",
- "untilVisit": {
- "postfix": "before the visit",
- "prefix": "Per"
}, - "orderErrorsActions": {
- "changeService": "Select other services",
- "changeTime": "Choose another time",
- "changeRecord": "Edit Appointment",
- "deleteRecord": "Delete Appointment"
}, - "orderErrors": {
- "unknown": "incorrect recording parameters",
- "server": "something went wrong, please try again later",
- "code_400": "invalid email",
- "code_404": "incorrect recording parameters",
- "code_422": "incorrect recording parameters",
- "code_437": "time overlap with another visit",
- "code_433": "it is not possible to make an appointment at the selected time",
- "code_436": "no employees available for appointment",
- "code_438": "Unable to sign up for selected services",
- "code_501": "Unknown error",
- "bigLetter": {
- "unknown": "Incorrect recording parameters",
- "server": "Something went wrong, please try again later",
- "code_400": "Incorrect email",
- "code_404": "Incorrect recording parameters",
- "code_422": "Incorrect recording parameters",
- "code_437": "Time overlap with another visit",
- "code_433": "Unable to book at the selected time",
- "code_436": "No employees available for recording",
- "code_438": "Unable to sign up for selected services",
- "code_501": "Unknown error"
}
}, - "errors": {
- "name": {
- "required": "Enter your name"
}, - "company": {
- "required": "Enter company name"
}, - "phone": {
- "required": "Enter phone",
- "incorrect": "Wrong number"
}, - "email": {
- "required": "Enter email",
- "invalid": "Incorrect email format"
}, - "agreement": {
- "required": "You must accept the user agreement"
}, - "agreement_privacy_and_terms_of_use": {
- "required": "To continue, you must accept the user agreement, as well as agree to the processing of personal data"
}, - "comment_default": {
- "required": "Enter a comment"
}, - "comment": {
- "required": "Fill in the field"
}, - "code": {
- "incorrect": "Invalid code from SMS"
}
}
}, - "login": {
- "login": "entrance",
- "sms_auth": "SMS authorization",
- "input_code_confirm": "Enter the code received by SMS to the number",
- "input_phone_num": "Enter your phone number, we will send an SMS to it with an access code to your personal account",
- "input_login_and_password": "If you already have a username and password, enter them below",
- "code_confirm": "confirmation code",
- "come_in": "To come in",
- "sms_not_send_with_colon": "If the SMS did not arrive, you can request a second code via:",
- "sms_not_send": "If the SMS did not arrive, you can request a second code via",
- "sms_not_send_next_try": "If the SMS did not arrive, you can",
- "request_new_sms_code": "Request code again",
- "change_phone_num": "Change phone number",
- "get_code": "to get the code",
- "or": "or",
- "authorized_as": "You are logged in as",
- "come_in_with_login_and_pass": "Log in with username and password",
- "phone_or_email": "Phone or email",
- "pass": "Password",
- "come_in_with_sms_authorise": "Log in via SMS authorization",
- "errors": {
- "incorrect_login_password": "There is no user with this username or password",
- "undefined_error": "A system error has occurred, please try logging in later"
}
}, - "Jan": "January",
- "Feb": "February",
- "March": "Martha",
- "Mar": "Martha",
- "Apr": "April",
- "May": "May",
- "Jun": "June",
- "Jul": "July",
- "Aug": "august",
- "Sep": "September",
- "Oct": "October",
- "Nov": "november",
- "Dec": "December",
- "activity": {
- "places_left": "Remaining places",
- "filters": {
- "select": "Select filters",
- "reset": "Reset",
- "apply": "Apply"
}
}, - "button": {
- "select": "Select",
- "select_time": "Choose time",
- "all_right": "That's right",
- "get_sms": "Receive SMS",
- "back": "Return",
- "add_more": "Add more",
- "remove-from-record": "Remove from order",
- "continue": "Continue",
- "confirm": "Confirm",
- "canceling": "Cancel",
- "more_reviews": "More reviews"
}, - "landscape": "It will be more convenient if you turn the device vertically"
}James) - Имя клиента| company_id необходимый | число Пример: 4564 Идентификатор компании |
| Принимать необходимый | нить приложение/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Партнерский токен на предъявителя |
| телефон | нить Номер телефона клиента |
| полное имя | нить Имя клиента |
| успех | булев Статус успешного выполнения (истина) |
объект метаданные |
{- "phone": "+1-315-555-0175",
- "fulname": "James Smith"
}{- "success": true,
- "meta": {
- "message": "Created"
}
}После создания параметров встречи вы можете проверить их, чтобы убедиться в возможности успешного создания встречи.
Объект JSON, содержащий параметры онлайн-бронирования, включает следующие поля:
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
| назначения | Массив объектов | ДА | Варианты бронирования (услуг, специалистов...) |
Массив назначений состоит из объектов, имеющих следующие поля:
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
| идентификатор | число | Да | Идентификатор бронирования для отзыва после сохранения (см. ответ на запрос). |
| услуги | массив чисел | НЕТ | Массив идентификаторов услуг, на которые клиент хочет подписаться |
| staff_id | число | ДА | Идентификатор специалиста, к которому клиент хочет записаться (0, если выбран любой специалист) |
| дата и время | дата и время | ДА | Дата и время сеанса в формате ISO8601 (передаются для каждого сеанса в ресурсе book_times) |
В ответ на запрос проверки параметров будет возвращен пустой ответ с кодом 201, если параметры бронирования в порядке и можно создавать бронирования:
Если ответ представляет собой JSON с кодом HTTP, отличным от 201, то параметры бронирования нарушены и бронирование невозможно.
При создании записи на прием сервер может выдать следующие ошибки:
Выбранный временной интервал уже занят. Возвращён код статуса HTTP 422 и код ошибки 433.
Нет доступных для бронирования сотрудников. Возникает, если выбран сотрудник по умолчанию, но ни один из них не доступен. Возвращается с кодом статуса HTTP 422 и кодом ошибки 436.
Конфликт времени бронирования в одном запросе. Одно из выбранных значений времени бронирования совпадает с другим бронированием, созданным в том же запросе. Возвращается код статуса HTTP 422 и код ошибки 437, включая идентификатор конфликтующего бронирования в массиве назначений.
Услуга недоступна для бронирования. Выбранная услуга больше недоступна (например, удалена компанией). Возвращается код статуса HTTP 422 и код ошибки 438.
| company_id необходимый | число Идентификатор компании |
| Принимать необходимый | нить Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| appointments required | Array of objects Booking options (services, specialists...) |
| success | boolean Execution success status (true) |
object metadata |
| success | boolean Execution success status (true) |
object metadata |
{- "appointments": [
- {
- "id": 1,
- "services": [
- 331
], - "staff_id": 6544,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "id": 2,
- "services": [
- 99055
], - "staff_id": 6544,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}
]
}{- "success": true,
- "meta": {
- "message": "Created"
}
}To create a session entry, provide a JSON object containing the online booking parameters. The object includes the following fields:
| Field | Type | Mandatory | Description |
|---|---|---|---|
| phone | string | YES | Client's phone number (eg 79161502239) |
| full name | string | YES | Client name |
| string | NO | Postal address of the client | |
| appointments | Array of objects | YES | Booking options (services, specialists...) |
| code | string | NO | Phone number confirmation code sent via SMS (only needed if you need to confirm the number) |
| notify_by_sms | number | NO | Number of hours in advance to send an SMS reminder for the appointment (set to 0 to disable reminders). |
| notify_by_email | number | NO | Number of hours in advance to send an email reminder for the appointment (set to 0 to disable the reminder). |
| comment | string | NO | Appointment Comment |
| api_id | string | NO | External Appointment ID |
The appointments array consists of objects that have the following fields:
| Field | Type | Mandatory | Description |
|---|---|---|---|
| id | number | Yes | Booking ID for post-save feedback (see response to request). |
| services | array of numbers | NO | Array of IDs of the services the client wants to sign up for |
| staff_id | number | YES | ID of the specialist the client wants to book with (0 if any specialist is selected) |
| datetime | datetime | YES | Session date and time in ISO8601 format (passed for each session in the book_times resource) |
| custom_fields | key-value object | NO | Additional field values that are returned with the appointment |
Additional fields in the appointments array
When additional appointment fields are created (see the "Additional Fields" section), you can pass custom values for them during appointment creation. These fields are unique to each company. Once the additional fields are set up, their values can be included in the optional custom_fields parameter. This should be passed as a key–value object, where each key corresponds to the code of the additional field. Example:
In response to the request to create an appointment, an array of objects will come (the number of objects is equal to the number of objects in the appointments array) with the following fields:
| Field | Type | Description |
|---|---|---|
| id | number | The appointment ID as passed in the original appointments array |
| record_id | number | The unique identifier of the appointment created in the system |
| record_hash | string | A temporary ID used for deleting the appointment immediately after creation |
Errors to be handled:
Incorrect SMS verification code. Returned with HTTP status 422 and error code 432. The SMS verification code entered by the user is invalid.
Selected time slot is already taken. Returned with HTTP status 422 and error code 433. The selected appointment time is unavailable. The response includes the id of the conflicting appointment from the appointments array.
User is blacklisted. Returned with HTTP status 403 and error code 434. The user with the specified phone number is blacklisted and cannot book an appointment.
Invalid phone number format. Returned with HTTP status 422 and error code 431. The user's phone number is not in a valid format.
Missing client name. Returned with HTTP status 422 and error code 435. The client's name was not provided.
No available employees. Returned with HTTP status 422 and error code 436. No employees are available at the selected time (commonly occurs when using a default employee setting).
Overlapping appointments in request. Returned with HTTP status 422 and error code 437. One of the selected times overlaps with another appointment in the same request. The response includes the id of the conflicting appointment from the appointments array.
| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| phone required | string Customer phone |
| fullname required | string Client name |
string Postal address of the client | |
| code | number SMS confirmation code for verifying the phone number. This field is required if the company has phone_confirmation = true |
| comment | string Commentary on the post |
| type | string Appointment source |
| notify_by_sms | number Specifies how many hours before the visit an SMS reminder should be sent to the client. Set to 0 if no reminder is needed. |
| notify_by_email | number Specifies how many hours before the visit an email reminder should be sent to the client. Set to 0 if no reminder is needed. |
| api_id | number Appointment ID from external system |
Array of objects Appointment options (session, services, specialist) |
| success | boolean Execution success status (true) |
Array of objects Data (array of objects) | |
| meta | Array of objects Metadata (empty array) |
{- "phone": "+1-315-555-0175",
- "fullname": "James Smith",
- "email": "j.smith@example.com",
- "code": "38829",
- "comment": "test entry!",
- "type": "mobile",
- "notify_by_sms": 6,
- "notify_by_email": 24,
- "api_id": "777",
- "appointments": [
- {
- "id": 1,
- "services": [
- 331
], - "staff_id": 6544,
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "custom_fields": {
- "my_custom_field": 123,
- "some_another_field": [
- "first value",
- "next value"
]
}
}, - {
- "id": 2,
- "services": [
- 99055
], - "staff_id": 6544,
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "custom_fields": {
- "my_custom_field": 456,
- "some_another_field": [
- "next value",
- "last value"
]
}
}
]
}{- "success": true,
- "data": [
- {
- "id": 1,
- "record_id": 2820023,
- "record_hash": "567df655304da9b98487769426d4e76e"
}, - {
- "id": 2,
- "record_id": 2820024,
- "record_hash": "34a45ddabdd446d5d33bdd27fbf855b2"
}
], - "meta": [ ]
}| company_id required | number Company ID |
| record_id required | number ID of the appointment to be migrated |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| datetime | string <date-time> Date and time to which we want to move the appointment |
| comment | string Appointment Comment |
| success | boolean Execution success status (true) |
object Data (object) |
{- "datetime": "2025-09-21T23:00:00.000+03:00",
- "comment": "DODO!"
}{- "success": true,
- "data": {
- "id": 30358,
- "services": [
- {
- "id": 2838,
- "title": "Foot massage",
- "cost": 0,
- "discount": 0
}
], - "company": {
- "id": 4564,
- "title": "Business Example",
- "country_id": "0",
- "country": "United States",
- "city_id": "0",
- "city": "New York",
- "phone": "+1-315-555-0175",
- "timezone": "0",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242"
}, - "staff": {
- "id": 924,
- "name": "Alice",
- "spec": "about eu",
- "show_rating": "1",
- "rating": "5",
- "votes_count": "1",
- "comments_count": "0"
}, - "date": "2025-09-21T23:00:00.000+03:00",
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "",
- "deleted": true,
- "length": 3600,
- "notify_by_sms": 0,
- "notify_by_email": 0,
- "master_requested": false,
- "online": true,
- "api_id": "0"
}
}| company_id required | number Company ID |
| record_id required | number Example: 22123 Post ID (enough to view the post if the user is logged in) |
| record_hash required | string Example: 'dawd4fs09rhf0s9fafef0' HASH appointments (required to view the appointment if the user is not authorized) |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| id | number Appointment ID |
Array of objects Service ID List | |
object Company parameters | |
object Employee parameters | |
| clients_count | integer <int32> |
| date | string <date-time> 04-02T12:00:00Z' (required, string) - Session date |
| datetime | string <date-time> Session date in ISO |
| create_date | string <date-time> 04-02T12:00:00Z' (required, string) - Appointment creation date |
| comment | string Appointment Comment |
| deleted | boolean Whether the appointment was made (true if removed) |
| attendance | number 2 - the user confirmed the appointment, 1 - the user came, the services were provided, 0 - the user was waiting, -1 - the user did not show' |
| length | number Session duration |
| notify_by_sms | number Specifies how many hours in advance an SMS reminder should be sent before the appointment. Set to 0 to disable SMS reminders |
| notify_by_email | number Specifies how many hours in advance an email reminder should be sent before the appointment. Set to 0 to disable email reminders |
| master_requested | boolean Indicates whether a specific specialist was selected for the appointment. Set to false if the "Any specialist" option was chosen. |
| online | boolean Indicates whether the appointment was created online by the client (true) or manually by an administrator (false) |
| api_id | string External entry ID |
| last_change_date | string <date-time> The date and time when the appointment was last modified |
| prepaid | boolean Indicates whether online payment is available for the appointment |
| prepaid_confirmed | boolean Online payment status |
| activity_id | number group event ID |
{- "id": 13132699,
- "services": [
- {
- "id": 389043,
- "title": "Correction of extended nails",
- "cost": 2300,
- "price_min": 2300,
- "price_max": 2300,
- "discount": 0,
- "amount": 1,
- "seance_length": 1800
}
], - "company": {
- "id": 4564,
- "title": "Nail correction salon",
- "country_id": 1,
- "country": "United States",
- "city_id": 2,
- "city": "New York",
- "phone": "+1-315-555-0175",
- "phones": [ ],
- "timezone": 12,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "allow_delete_record": true,
- "allow_change_record": true,
- "site": "www.example.com",
- "currency_short_title": "USD",
- "allow_change_record_delay_step": 0,
- "allow_delete_record_delay_step": 0
}, - "staff": {
- "id": 55436,
- "name": "Natalia",
- "specialization": "Master of manicure and pedicure",
- "position": {
- "id": 446,
- "title": "Manicurist"
}, - "show_rating": 1,
- "rating": 4.84,
- "votes_count": 0,
- "comments_count": 37
}, - "clients_count": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2017-10-24T17:30:00+0000",
- "create_date": "2017-10-20T21:40:24+0000",
- "comment": "",
- "deleted": true,
- "attendance": 0,
- "length": 1800,
- "notify_by_sms": 0,
- "notify_by_email": 0,
- "master_requested": false,
- "online": true,
- "api_id": "",
- "last_change_date": "2017-10-24T23:54:02+0000",
- "prepaid": false,
- "prepaid_confirmed": false,
- "activity_id": 0
}| company_id required | number Company ID |
| activity_id required | number Group Event ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| fullname required | string Client name |
| phone required | string Customer phone (for example 79161502239) |
string Postal address of the client | |
| code | number SMS confirmation code for verifying the phone number. This field is required if the company has phone_confirmation = true |
| comment | string Appointment Comment |
| notify_by_sms | integer <int32> Specifies how many hours in advance an SMS reminder should be sent before the appointment. Set to 0 to disable SMS reminders. |
| notify_by_email | integer <int32> Specifies how many hours in advance an email reminder should be sent before the appointment. Set to 0 to disable email reminders |
| type | string Appointment source |
| api_id | number Appointment ID from external system |
| clients_count | number number of seats |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 28417878,
- "hash": "9e6a54a1a9b118b65cc39ab6f3c3b5b4"
}, - "meta": [ ]
}The dates available for booking object has the following fields:
| Field | Type | Description |
|---|---|---|
| working_days | array of working days grouped by month | Working days of an employee/organization |
| working_dates | array of dates | An array of dates when the employee/organization works |
| booking_days | array of days when there are free sessions | Array of days that are available for booking for the specified services |
| booking_dates | array of dates | An array of dates when there are free sessions for the service to the selected employee/organization |
working days and booking_days have the same format: month:[array of days in this month]
For example, this booking_days: "9": [ "4", "5"] "10": [ "14", "25"] Means that on September 4 and 5, and on October 14 and 25 there are free sessions for booking
The following filters are available:
| company_id required | number Company ID |
| service_ids[] | string Service ID. Filter by the list of service identifiers |
| staff_id | number Example: staff_id=0 Employee ID. Filter by employee ID Default: 0 |
| date | string Example: date=2015-09-01 date in iso8601 format. Filter by month of booking. |
| date_from | string Example: date_from=2015-09-01 date in iso8601 format. Start of dates to search. Must be used together with the "date_to" param and overrides the "date" param. |
| date_to | string Example: date_to=2015-09-30 date in iso8601 format. End of dates to search. Must be used together with the "date_from" param and overrides the "date" param. |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| success | boolean Execution success status (true) |
object Data (object) | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "booking_days": {
- "9": [
- "4",
- "5",
- "8",
- "9",
- "12",
- "13",
- "16",
- "17",
- "20",
- "21",
- "24",
- "25",
- "28",
- "29",
- "30"
], - "10": [
- "1",
- "4",
- "5",
- "8",
- "9",
- "12",
- "13",
- "16",
- "17",
- "20",
- "21",
- "24",
- "25"
]
}, - "booking_dates": [
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00"
], - "working_days": {
- "9": [
- "4",
- "5",
- "8",
- "9",
- "12",
- "13",
- "16",
- "17",
- "20",
- "21",
- "24",
- "25",
- "28",
- "29",
- "30"
], - "10": [
- "1",
- "4",
- "5",
- "8",
- "9",
- "12",
- "13",
- "16",
- "17",
- "20",
- "21",
- "24",
- "25"
]
}, - "working_dates": [
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00"
]
}, - "meta": [ ]
}The object of services available for booking has the following fields:
| Field | Type | Description |
|---|---|---|
| categories | array of objects | Array of service categories (you can't book a category) |
| services | array of objects | Services available for booking by category |
An object from the categories array, has the following fields:
| Field | Type | Description |
|---|---|---|
| id | number | Category ID |
| title | string | Category name |
| sex | number | Category belonging to gender (1 - male, 2 - female, 0 - not specified) |
| weight | number | Category weight. Categories are sorted by weight, heavier ones first |
| api_id | string | External Category ID |
An object from the services array, has the following fields:
| Field | Type | Description |
|---|---|---|
| id | number | Service ID |
| title | string | Service name |
| category_id | number | Identifier of the category to which the service belongs |
| weight | number | Category weight. Services are sorted by weight, heavier ones first |
| price_min | number | The minimum cost of the service |
| price_max | number | Maximum cost of the service |
| discount | number | Service discount |
| comment | string | Comment on the service |
| active | number | Is the service active |
| prepaid | string | Online payment status |
| sex | number | Gender for which the service is provided |
| session_length | number | Service duration in seconds (only if filter by employee is set) |
| image | string | Image services |
If you need to get the services provided by a specific specialist, then you need to use the filter by specialist. The following filters are available:
| company_id required | number Example: 4564 Company ID |
| staff_id | number Example: staff_id=0 Employee ID. Filter by employee ID Default: 0 |
| datetime | number Example: datetime=`` date (in iso8601 format). Filter by service booking date (for example '2005-09-09T18:30') Default: '' |
| service_ids[] | Array of numbers Service ID. Filter by the list of identifiers of already selected (within one appointment) services. It makes sense if a filter by specialist and date is set. |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| success | boolean Success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "events": [ ],
- "services": [
- {
- "id": 1896208,
- "title": "hair wash",
- "category_id": 1895571,
- "price_min": 0,
- "price_max": 0,
- "discount": 0,
- "comment": "",
- "weight": 0,
- "active": 0,
- "sex": 0,
- "image": "",
- "prepaid": "forbidden",
- "seance_length": 3600
}, - {
- "id": 1896303,
- "title": "Coloring",
- "category_id": 1895574,
- "price_min": 0,
- "price_max": 0,
- "discount": 0,
- "comment": "",
- "weight": 0,
- "active": 0,
- "sex": 0,
- "image": "",
- "prepaid": "forbidden",
- "seance_length": 3600
}
], - "category": [
- {
- "id": 1895571,
- "title": "Hair care",
- "sex": 0,
- "api_id": 0,
- "weight": 60
}, - {
- "id": 1895574,
- "title": "Hair coloring",
- "sex": 0,
- "api_id": 0,
- "weight": 7
}
]
}, - "meta": [ ]
}The employee's nearest sessions object has the following fields:
| Field | Type | Description |
|---|---|---|
| session_date | string | Next date with available sessions |
| sessions | array | List of available sessions |
The following filters are available:
| company_id required | number Company ID |
| staff_id required | number Employee ID |
| service_ids[] | Array of numbers Service ID. Filter by the list of service identifiers |
| datetime | number date in iso8601 format. Filter by date |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "seance_date": "2025-09-21T23:00:00.000+03:00",
- "seances": [
- {
- "time": "10:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "10:15",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "10:30",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "10:45",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "11:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}
]
}, - "meta": [ ]
}Each object from the array of employees available for booking has the following fields:
| Field | Type | Description |
|---|---|---|
| id | number | Employee ID |
| name | string | Employee name |
| specialization | string | Employee specialization |
| position | object | Employee position |
| bookable | boolean | Does the employee have sessions available for booking |
| weight | number | Employee weight. When withdrawing, employees are sorted by weight, heavier first |
| show_rating | number | Whether to show employee's rating (1 - show, 0 - don't show) |
| rating | number | Employee rating |
| votes_count | number | Number of votes rated employee |
| comments_count | number | Number of comments to an employee |
| avatar | string | Path to employee avatar file |
| information | string | Additional information about the employee (HTML format) |
| session_date | string | Date of the next day that there are available sessions (only for bookable = true) |
The following filters are available:
| company_id required | number Example: 4564 Company ID |
| service_ids[] | Array of numbers Service ID. Filter by the list of service identifiers |
| datetime | number date in iso8601 format. Filter by service booking date (for example '2005-09-09T18:30') |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "16",
- "name": "James",
- "bookable": true,
- "specialization": "Paramedic",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "show_rating": "1",
- "rating": "3",
- "votes_count": "1",
- "comments_count": "0",
- "weight": "11",
- "information": "<span></span>",
- "seance_date": "2025-09-21T23:00:00.000+03:00",
- "seances": [ ]
}, - {
- "id": "32",
- "name": "Peter",
- "bookable": false,
- "specialization": "Therapist",
- "position": [ ],
- "show_rating": "1",
- "rating": "4",
- "votes_count": "1",
- "comments_count": "0",
- "weight": "8",
- "information": "<span></span>"
}
], - "meta": [ ]
}The sessions available for booking object has the following fields:
| Field | Type | Description |
|---|---|---|
| time | string | Session time (17:30 for example) |
| session_length | number | Session duration in seconds |
| datetime | datetime | Date and time of the session in ISO8601 format (must be passed when creating the appointment) |
The following filters are available:
| company_id required | number Company ID |
| date required | string date in iso8601 format. Filter by booking date (eg '2015-09-30') |
| staff_id required | number Example: 0 Employee ID. Filter by employee ID Default: 0 |
| service_ids[] | string Service ID. Filter by the list of service identifiers |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "time": "12:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "13:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "14:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "15:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}, - {
- "time": "16:00",
- "seance_length": 3600,
- "datetime": "2025-09-21T23:00:00.000+03:00"
}
], - "meta": [ ]
}To access both online and offline (e.g., phone-made) appointments, the user must log in by verifying their phone number. This is done by requesting a confirmation code to be sent via SMS using the "SMS phone number verification code" endpoint.
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| login required | string Phone number or Email |
| password required | string Password |
| user_token | string User_token of the user |
{- "login": "testuser@alteg.io",
- "password": "testpass"
}{- "user_token": "wec23fh8cDfFV4432fc352456"
}| record_id required | number Example: 22123 Appointment ID (enough to delete the appointment if the user is authorized) |
| record_hash required | string Example: 'dawd4fs09rhf0s9fafef0' HASH appointments (required to delete the record if the user is not authorized) |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
When a user of an online account changes their password, their API key will change and a new authorization will be required
| Attribute | Type | Description |
|---|---|---|
| login | string | The visitor's phone number in the format 380000000000, or their email address. |
| password | string | Visitor password |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| login required | string Phone number or Email |
| password required | string Password |
| id | integer <int32> User ID |
| user_token | string User_token of the user |
| name | string Username |
| phone | string User phone |
| login | string User login |
string User mailing address | |
| avatar | string Path to the user's avatar file |
{- "login": "testuser@alteg.io",
- "password": "testpass"
}{- "id": 123456,
- "user_token": "wec23fh8cDfFV4432fc352456",
- "name": "James Smith",
- "phone": "+1-315-555-0175",
- "login": "j.smith",
- "email": "j.smith@example.com",
}The request must contain one of two parameters: company_id or group_id
| company_id required | integer Company ID |
| group_id required | integer Chain ID |
| phone required | string Phone number |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}Updating the password of an online booking user.
The response comes with a new user token.
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| old_password | string Current Password |
| new_password | string New password |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "old_password": "qwerty123",
- "new_password": "example!"
}{- "success": true,
- "data": {
- "user_token": "4de9d8cc108c0"
}, - "meta": [ ]
}Updating a specialist’s data in online booking.
When updating a phone number, the confirmation_code field must be included in the request. This code should be obtained using the SMS confirmation code of the phone number to change data
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| name | string Name |
string | |
| phone | string Phone number |
| confirmation_code | string SMS confirmation code (when changing phone number) |
{- "name": "James Smith",
- "email": "j.smith@example.com",
- "phone": "+1-315-555-0175",
- "confirmation_code": "1234"
}{- "success": true,
- "meta": {
- "message": "Accepted"
}
}Retrieve online booking user data.
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| 0 | string User Token |
| id | integer <int32> User ID |
| user_token | string User Token |
| name | string Username |
| phone | string User phone |
| login | string User login |
string User mail | |
| avatar | string User avatar |
{- "0": "152afb01134237bc844d7e",
- "id": 32132133,
- "user_token": "152afb01134237bc844d7e",
- "name": "James",
- "phone": "+1-315-555-0175",
- "login": "j.smith",
- "email": "j.smith@example.com",
}Get a list of companies with data
| id | number Example: id=4564 Filter by company ID |
| group_id | number Example: group_id=83 Filter by company chain ID Default: 83 |
| my | number Example: my=1 For authorized user only. If you need companies that the user has rights to manage |
| active | number Example: active=1 If you need to get only companies with an active license and an available booking |
| moderated | number Example: moderated=1 If you need to get only moderated companies, whose content is checked for publication |
| forBooking | number Example: forBooking=1 Include date and time of the next free session in the company (ISO8601) |
| show_groups | number Example: show_groups=1 Include in the company object a list of chains that this company belongs to |
| city_id | |
| showBookforms | number Example: showBookforms=1 Include in the company object a list of company online booking forms |
| min_id | number Example: min_id=1000 Filter by minimum company ID |
| show_deleted | number Example: show_deleted=1 Include deleted companies |
| hide_record_type_single | number Example: hide_record_type_single=1 Hide companies with individual booking |
| hide_record_type_activity | number Example: hide_record_type_activity=1 Hide companies with group booking |
| hide_record_type_mixed | number Example: hide_record_type_mixed=1 Hide companies with mixed booking |
| business_group_id | number Example: business_group_id=1 Filter by business group ID |
| business_type_id | number Example: business_type_id=1 Filter by business type ID |
| include | Array of strings Items Enum: "staff" "positions" "accounts" "storages" "expenses" Example: include=staff&include=positions Include additional data in the company object |
| count | number Number of companies per page |
| page | number Page number |
| Accept required | string Must be |
| Content-Type required | string Must be |
| Authorization required | string Bearer partner_token |
| success | boolean Success status (true) |
Array of objects Array of objects | |
| meta | Array of objects Metadata (empty array) |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
{- "success": true,
- "data": [
- {
- "id": "1050",
- "title": "La Visage",
- "short_descr": "Beauty saloon",
- "active": "1",
- "phone": "+1-315-555-0175",
- "country_id": 7,
- "schedule": "",
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "phone_confirmation": true,
- "active_staff_count": 2,
- "next_slot": "2023-03-23T10:10:00+0300",
- "app_ios": "",
- "app_android": "",
- "currency_short_title": "R",
- "group_priority": 900
}, - {
- "id": "1051",
- "title": "La Visage 2",
- "short_descr": "Beauty saloon",
- "active": "1",
- "phone": "+1-315-555-0175",
- "country_id": 7,
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "phone_confirmation": false,
- "active_staff_count": 3,
- "next_slot": "2023-03-23T10:10:00+0300",
- "app_ios": "",
- "app_android": "",
- "currency_short_title": "R",
- "group_priority": 901
}
], - "meta": { }
}Create new company
| Accept required | string Must be |
| Content-Type required | string Must be |
| Authorization required | string Bearer partner_token, User user_token |
| title | string Company name |
| country_id | number ID of the country in which the company is located (method to get a list of countries) |
| city_id | number Identifier of the city in which the company is located (method to get a list of cities) |
| address | string Company address |
| site | string Company website |
| coordinate_lat | number <float> Latitude |
| coordinate_lot | number <float> Longitude |
| business_type_id | number Business type |
| short_descr | string Company category |
| success | boolean Success status (true) |
object data object | |
| meta | Array of objects Metadata (empty array) |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "title": "James Smith LLC",
- "country_id": 1,
- "city_id": 2,
- "address": "New York, 787 Jackson Drive",
- "site": "james-smith-company.com",
- "coordinate_lat": "40.730610",
- "coordinate_lot": "-73.935242",
- "business_type_id": 1,
- "short_descr": "Beauty salon"
}{- "success": true,
- "data": {
- "id": "1050",
- "title": "James Smith LLC",
- "short_descr": "Beauty salon",
- "active": "1",
- "phone": "+1-315-555-0175",
- "country_id": 7,
- "schedule": "",
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "phone_confirmation": true,
- "active_staff_count": 2,
- "app_ios": "",
- "app_android": "",
- "currency_short_title": "R"
}, - "meta": { }
}Getting information about the company.
| id required | number Example: 37532 The ID of the company to get information about. |
| my | number Example: my=1 For authorized user only. If you need additional data for the company that the user has rights to manage |
| forBooking | number Example: forBooking=1 Date and time of the next free session in the company (ISO8601). |
| show_groups | number Example: show_groups=1 Include in the company object a list of chains that this company belongs to |
| showBookforms | number Example: showBookforms=1 Show company online booking forms (widgets) |
| bookform_id | number Example: bookform_id=19203 Show url of online booking form with specified ID |
| Accept required | string Must be |
| Content-Type required | string Must be |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
{- "success": true,
- "data": {
- "id": 37532,
- "title": "James Smith LLC",
- "country_id": 7,
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "zip": 11435,
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "short_descr": "Beauty salon",
- "social": {
- "facebook": "",
- "instagram": "instagram.com/james_smith_company/",
- "telegram": "",
- "whatsapp": "",
- "viber": ""
}, - "site": "james-smith-company.com",
- "business_type_id": 1,
- "description": "The <strong>James Smith</strong> company",
- "phone_confirmation": true,
- "active_staff_count": 2,
- "next_slot": "2023-03-23T10:10:00+0300",
- "group_priority": 900,
- "push_notification_phone_confirm": 1,
- "main_group_id": 9206,
- "main_group": {
- "id": 9206,
- "title": "James Smith LLC main company chain"
}, - "groups": {
- "9206": {
- "id": 9206,
- "title": "James Smith LLC main company chain"
}, - "9207": {
- "id": 9207,
- "title": "James Smith LLC extra company chain"
}
}, - "bookforms": [
- {
- "id": 19203,
- "title": "James Smith LLC company booking form",
- "is_default": 0,
}
], - "access": { }
}, - "meta": { }
}Change company data
| id required | number Example: 37532 Company ID |
| Accept required | string Must be |
| Content-Type required | string Must be |
| Authorization required | string Bearer partner_token, User user_token |
| title | string Company name |
| country_id | number Country ID (has higher priority then country) |
| country | string Country |
| city_id | number City ID (has higher priority then city) |
| city | string City |
| address | string Company address |
| zip | string Zip code |
| phones | Array of strings Company phone numbers |
object Company social media | |
| site | string Company website |
| coordinate_lat | number <float> Latitude |
| coordinate_lon | number <float> Longitude |
| description | string <html> Description |
| business_type_id | number <int32> Business type |
| short_descr | string Business category |
| id | number Company ID |
| title | string Company name |
| country_id | number Country ID |
| country | string Country name |
| city_id | number City ID |
| city | string City name |
| timezone_name | string Timezone name |
| address | string Company address |
| zip | number Zip code |
object Company social media | |
| site | string Company website |
| coordinate_lat | number <float> Latitude |
| coordinate_lon | number <float> Longitude |
| description | string <html> Description |
| business_type_id | number <int32> Business type |
| short_descr | string Business category |
| phone_confirmation | boolean Do I need to confirm my phone number via SMS when booking? |
| group_priority | integer <int32> The higher the priority, the higher the company when displayed in the list of chain branches |
| push_notification_phone_confirm | boolean Confirm client number to send push notifications |
| access | object Access rights list |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
{- "title": "James Smith LLC",
- "country": "United States",
- "city": "New York",
- "address": "New York, 787 Jackson Drive",
- "zip": 11435,
- "phones": [
- "12125357710",
- "12125357711"
], - "social": {
- "instagram": "instagram.com/james_smith_company/"
}, - "site": "james-smith-company.com",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "description": "The <strong>James Smith</strong> company",
- "business_type_id": 1,
- "short_descr": "Beauty salon"
}{- "id": 37532,
- "title": "James Smith LLC",
- "country_id": 7,
- "country": "United States",
- "city_id": 181,
- "city": "New York",
- "timezone_name": "Europe/Moscow",
- "address": "New York, 787 Jackson Drive",
- "zip": 11435,
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "short_descr": "Beauty salon",
- "social": {
- "facebook": "",
- "instagram": "instagram.com/james_smith_company/",
- "telegram": "",
- "whatsapp": "",
- "viber": ""
}, - "site": "james-smith-company.com",
- "business_type_id": 1,
- "description": "The <strong>James Smith</strong> company",
- "phone_confirmation": true,
- "group_priority": 900,
- "push_notification_phone_confirm": 1,
- "access": { }
}Delete a company.
| id required | number Example: 37532 Company ID |
| Accept required | string Must be |
| Content-Type required | string Must be |
| Authorization required | string Bearer partner_token, User user_token |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
object (Response error message) Additional response data. | |
object (Response error message) Additional response data. |
{- "errors": {
- "code": 401,
- "message": "Authentication needed"
}, - "meta": {
- "message": "Authentication needed."
}
}| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| title | string Service category name |
| api_id | string External Category ID |
| weight | number Category weight (used to sort categories when displayed) |
| staff | Array of numbers List of IDs of employees providing services from the category |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "title": "Haircut very feminine",
- "api_id": "adw322",
- "weight": 111,
- "staff": [
- 5006,
- 8901
]
}{- "success": true,
- "data": {
- "id": 3,
- "title": "Haircut very feminine",
- "api_id": "adw322",
- "weight": 111,
- "staff": [
- 5006,
- 8901
]
}, - "meta": [ ]
}| company_id required | number Company ID |
| id required | number Service Category ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-type required | string application/json |
| Authorization required | string Bearer partner_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects | |
object Metadata (number of categories) |
{- "success": true,
- "data": {
- "id": 3,
- "salon_service_id": 15,
- "title": "Haircuts for women",
- "weight": 12,
- "staff": [
- 5006,
- 8901
]
}, - "meta": [ ]
}| company_id required | number Company ID |
| id required | number Service Category ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| title | string Service category name |
| api_id | string External Category ID |
| weight | number Category weight (used to sort categories when displayed) |
| staff | Array of numbers List of IDs of employees providing services from the category |
| success | boolean Execution success status (true) |
Array of objects Array of objects | |
object Metadata (number of categories) |
{- "title": "Haircut very feminine",
- "api_id": "adw322",
- "weight": 111,
- "staff": [
- 5006,
- 8901
]
}{- "success": true,
- "data": {
- "id": 3,
- "salon_service_id": 15,
- "title": "Haircuts for women",
- "weight": 15,
- "staff": [
- 5006,
- 8901
]
}, - "meta": [ ]
}| company_id required | number Company ID |
| id required | number Service Category ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Conetnt-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| chain_id required | integer Chain ID |
| include | string Value: "services" Include additional resources in response |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| id | integer <int32> Service Category ID |
| title | string Service category name |
Array of objects (Root Type for ServiceTitle) Services in the category (on request) |
[- {
- "id": 41,
- "title": "Service category",
- "services": [
- {
- "id": 52,
- "title": "Service 1"
}, - {
- "id": 45,
- "title": "Service 2"
}
]
}
]| company_id required | number Company ID |
| id required | number Service Category ID |
| staff_id | number Employee ID (to get categories associated with an employee) |
| Accept required | string e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects | |
object Metadata (number of categories) |
| success | boolean Execution success status (true) |
| data | string is null |
object Metadata (error message) |
| success | boolean Execution success status (true) |
| data | string is null |
object Metadata (contains possible error messages) |
{- "success": true,
- "data": [
- {
- "id": 345,
- "salon_service_id": 353,
- "title": "Haircuts for men",
- "api_id": "adw322",
- "weight": 10,
- "staff": [
- 5006,
- 8901,
- 26514,
- 26516,
- 26519,
- 26520
]
}, - {
- "id": 3456,
- "salon_service_id": 3252,
- "title": "Haircuts for women",
- "api_id": "adw323",
- "weight": 9,
- "staff": [
- 5006,
- 8901
]
}
], - "meta": {
- "total_count": 2
}
}Get a list of service categories
| company_id required | number Company ID |
| id required | number Service category identifier |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects | |
object Metadata (number of categories) |
{- "success": true,
- "data": [
- {
- "id": 345,
- "title": "Haircuts for men",
- "api_id": "adw322",
- "weight": 10,
- "staff": [
- 5006,
- 8901,
- 26514,
- 26516,
- 26519,
- 26520
]
}, - {
- "id": 3456,
- "title": "Haircuts for women",
- "api_id": "adw323",
- "weight": 9,
- "staff": [
- 5006,
- 8901
]
}
], - "meta": [ ]
}Method to create a service
| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorizarion required | string Bearer partner_token, User user_token |
| title | string Service name |
| category_id | number Service Category ID |
| price_min | number <float> The minimum cost of the service |
| price_max | number <float> Maximum cost of the service |
| duration | number <float> Service duration, default is 3600 seconds |
| discount | number <float> Service discount |
| comment | string Comment on the service |
| weight | number Service weight (used to sort services when displayed) |
| active | number Is the service available for online booking? 1 - available, 0 not available. |
| api_id | string External Service ID |
Array of objects Employees who provide the service, along with the duration of the service for each employee |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "title": "Men's haircut",
- "category_id": 83167,
- "price_min": 1300,
- "price_max": 1300,
- "duration": 3600,
- "discount": 0,
- "comment": "",
- "weight": 6,
- "active": 1,
- "api_id": "00000000042",
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700
}, - {
- "id": 5907,
- "seance_length": 3600
}, - {
- "id": 8973,
- "seance_length": 3600
}, - {
- "id": 13616,
- "seance_length": 3600
}, - {
- "id": 16681,
- "seance_length": 3600
}, - {
- "id": 1796,
- "seance_length": 3600
}, - {
- "id": 34006,
- "seance_length": 3600
}
]
}{- "success": true,
- "data": {
- "id": 83169,
- "title": "Men's haircut",
- "category_id": 83167,
- "price_min": 1300,
- "price_max": 1300,
- "duration": 3600,
- "discount": 0,
- "comment": "",
- "weight": 6,
- "active": 1,
- "api_id": "00000000042",
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700
}, - {
- "id": 5907,
- "seance_length": 3600
}, - {
- "id": 8973,
- "seance_length": 3600
}, - {
- "id": 13616,
- "seance_length": 3600
}, - {
- "id": 16681,
- "seance_length": 3600
}, - {
- "id": 1796,
- "seance_length": 3600
}, - {
- "id": 34006,
- "seance_length": 3600
}
]
}, - "meta": [ ]
}1) - company ID1) - service ID| company_id required | number Company ID |
| service_id required | number Service ID, if you need to work with a specific service. |
| staff_id | number Employee ID, if you want to filter by employee |
| category_id | number Category ID, if you want to filter by category |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of services found) |
| success | boolean Execution success status (true) |
| data | string is null |
object Metadata (error message) |
| success | boolean Execution success status (true) |
| data | string is null |
object Metadata (contains possible error messages) |
{- "success": true,
- "data": [
- {
- "id": "79067",
- "title": "shaving head",
- "category_id": "4",
- "price_min": "1000.00",
- "price_max": "1000.00",
- "discount": "0",
- "comment": "",
- "weight": "2",
- "active": "1",
- "api_id": "",
- "staff": [ ]
}, - {
- "id": "83169",
- "title": "Men's haircut",
- "category_id": "83167",
- "price_min": "1300.00",
- "price_max": "1300.00",
- "discount": "0",
- "comment": "",
- "weight": "6",
- "active": "1",
- "api_id": "00000000042",
- "staff": [
- {
- "id": "5905",
- "seance_length": "2700"
}, - {
- "id": "5907",
- "seance_length": "3600"
}, - {
- "id": "8973",
- "seance_length": "3600"
}, - {
- "id": "13616",
- "seance_length": "3600"
}, - {
- "id": "16681",
- "seance_length": "3600"
}, - {
- "id": "17969",
- "seance_length": "3600"
}, - {
- "id": "34006",
- "seance_length": "3600"
}
], - "image_group": {
- "id": 72234,
- "entity": "settings_service",
- "entity_id": 389927,
- "images": {
- "basic": {
- "id": "186791",
- "width": "372",
- "height": "280",
- "type": "jpeg",
- "image_group_id": 72234,
- "version": "basic"
}
}
}
}
], - "meta": {
- "total_count": 2
}
}Method to change the service
| company_id required | number Company ID |
| service_id required | number Service ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| title required | string Service name |
| booking_title required | string Service name for booking |
| category_id required | number ID service category |
| price_min required | number <float> Minimum cost of the service |
| price_max required | number <float> Maximum cost of the service |
| duration required | number Service duration, default value is 3600 |
| discount | number <float> Service discount |
| comment | string Comment on the service |
| is_multi required | boolean false - Appointment, true - Event |
| tax_variant required | number Bill ID |
| vat_id required | number VAT ID |
| is_need_limit_date required | boolean The service is available for a limited time |
| seance_search_start required | number Start of period is the booking available, in seconds |
| seance_search_finish required | number End of period is the booking available, in seconds |
| step required | number Display interval of slots, in seconds |
| seance_search_step required | number Search interval of slots, in seconds |
| weight | number Service weight (used to sort services when displayed) |
| active | number 1 - available for online recording, 0 - not available |
| api_id | string External Service ID |
Array of objects List of employees providing the service and session duration |
| success | boolean Execution success status (true) |
object | |
| meta | Array of objects Metadata (empty array) |
{- "title": "Men's haircut",
- "booking_title": "Men's haircut",
- "category_id": 83167,
- "price_min": 1300,
- "price_max": 1300,
- "duration": 3600,
- "discount": 0,
- "tax_variant": 1,
- "vat_id": 3,
- "is_multi": false,
- "is_need_limit_date": true,
- "date_from": "2022-09-19",
- "date_to": "2022-09-30",
- "seance_search_start": 36000,
- "seance_search_finish": 84600,
- "step": 300,
- "seance_search_step": 900,
- "comment": "",
- "weight": 6,
- "active": 1,
- "api_id": "00000000042",
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700
}, - {
- "id": 5907,
- "seance_length": 3600
}, - {
- "id": 8973,
- "seance_length": 3600
}, - {
- "id": 13616,
- "seance_length": 3600
}, - {
- "id": 16681,
- "seance_length": 3600
}, - {
- "id": 1796,
- "seance_length": 3600
}, - {
- "id": 34006,
- "seance_length": 3600
}
]
}{- "success": true,
- "data": {
- "booking_title": "Men's haircut",
- "tax_variant": 0,
- "vat_id": 2,
- "print_title": "Men's haircut",
- "service_type": 1,
- "api_service_id": 0,
- "repeat_visit_days_step": "null",
- "seance_search_start": 1800,
- "seance_search_finish": 84600,
- "seance_search_step": 900,
- "step": 300,
- "is_need_limit_date": "true",
- "date_from": "2022-09-19",
- "date_to": "2022-09-30",
- "schedule_template_type": 2,
- "online_invoicing_status": 0,
- "is_abonement_autopayment_enabled": 0,
- "autopayment_before_visit_time": 0,
- "abonement_restriction_value": 0,
- "is_chain": "false",
- "is_price_managed_only_in_chain": "false",
- "is_comment_managed_only_in_chain": "false",
- "price_prepaid_amount": 0,
- "price_prepaid_percent": 100,
- "id": 10832934,
- "salon_service_id": 12192004,
- "title": "Men's haircut",
- "category_id": 10832928,
- "price_min": 250,
- "price_max": 1200,
- "discount": 0,
- "comment": "",
- "weight": 0,
- "active": 1,
- "api_id": "0",
- "prepaid": "forbidden",
- "is_multi": "false",
- "capacity": 0,
- "image_group": [ ],
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700,
- "technological_card_id": 0
}, - {
- "id": 5907,
- "seance_length": 3600,
- "technological_card_id": 0
}
], - "dates": [
- "2022-09-19",
- "2022-09-20",
- "2022-09-21",
- "2022-09-22",
- "2022-09-23",
- "2022-09-24",
- "2022-09-25",
- "2022-09-26",
- "2022-09-27",
- "2022-09-28",
- "2022-09-29",
- "2022-09-30"
], - "duration": 3600,
- "resources": [ ],
- "is_online": true
}, - "meta": [ ]
}| company_id required | number Company ID |
| service_id required | number Service ID, if you need to work with a specific service. |
| staff_id | number Employee ID, if you want to filter by employee |
| category_id | number Category ID, if you want to filter by category |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of services found) |
{- "success": true,
- "data": [
- {
- "id": "79067",
- "title": "shaving head",
- "category_id": "4",
- "price_min": "1000.00",
- "price_max": "1000.00",
- "duration": "3600",
- "discount": "0",
- "comment": "",
- "weight": "2",
- "active": "1",
- "api_id": "",
- "staff": [ ]
}, - {
- "id": "83169",
- "title": "Men's haircut",
- "category_id": "83167",
- "price_min": "1300.00",
- "price_max": "1300.00",
- "duration": "3600",
- "discount": "0",
- "comment": "",
- "weight": "6",
- "active": "1",
- "api_id": "00000000042",
- "staff": [
- {
- "id": "5905",
- "seance_length": "2700"
}, - {
- "id": "5907",
- "seance_length": "3600"
}, - {
- "id": "8973",
- "seance_length": "3600"
}, - {
- "id": "13616",
- "seance_length": "3600"
}, - {
- "id": "16681",
- "seance_length": "3600"
}, - {
- "id": "17969",
- "seance_length": "3600"
}, - {
- "id": "34006",
- "seance_length": "3600"
}
], - "image_group": {
- "id": 72234,
- "entity": "settings_service",
- "entity_id": 389927,
- "images": {
- "basic": {
- "id": "186791",
- "width": "372",
- "height": "280",
- "type": "jpeg",
- "image_group_id": 72234,
- "version": "basic"
}
}
}
}
], - "meta": [ ]
}Deprecated. Method to change the service
| company_id required | number Company ID |
| service_id required | number Service ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| title | string Service name |
| category_id | number Service Category ID |
| price_min | number <float> The minimum cost of the service |
| price_max | number <float> Maximum cost of the service |
| duration | number <float> Service duration, default is 3600 seconds |
| discount | number <float> Service discount |
| comment | string Comment on the service |
| weight | number Service weight (used to sort services when displayed) |
| active | number Is the service available for online booking? 1 - available, 0 not available. |
| api_id | string External Service ID |
Array of objects Employees who provide the service, along with the duration of the service for each employee |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "title": "Men's haircut",
- "category_id": 83167,
- "price_min": 1300,
- "price_max": 1300,
- "duration": 3600,
- "discount": 0,
- "comment": "",
- "weight": 6,
- "active": 1,
- "api_id": "00000000042",
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700
}, - {
- "id": 5907,
- "seance_length": 3600
}, - {
- "id": 8973,
- "seance_length": 3600
}, - {
- "id": 13616,
- "seance_length": 3600
}, - {
- "id": 16681,
- "seance_length": 3600
}, - {
- "id": 1796,
- "seance_length": 3600
}, - {
- "id": 34006,
- "seance_length": 3600
}
]
}{- "success": true,
- "data": {
- "id": 83169,
- "title": "Men's haircut",
- "category_id": 83167,
- "price_min": 1300,
- "price_max": 1300,
- "duration": 3600,
- "discount": 0,
- "comment": "",
- "weight": 6,
- "active": 1,
- "api_id": "00000000042",
- "staff": [
- {
- "id": 5905,
- "seance_length": 2700
}, - {
- "id": 5907,
- "seance_length": 3600
}, - {
- "id": 8973,
- "seance_length": 3600
}, - {
- "id": 13616,
- "seance_length": 3600
}, - {
- "id": 16681,
- "seance_length": 3600
}, - {
- "id": 1796,
- "seance_length": 3600
}, - {
- "id": 34006,
- "seance_length": 3600
}
]
}, - "meta": [ ]
}Method to remove a service
| company_id required | number Company ID |
| service_id required | number Service ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
Creates an employee service link with provided duration and bill of materials.
| company_id required | number Example: 123 ID of a company. |
| service_id required | number Example: 123 ID of service. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| master_id required | number ID of an employee who provides the service. |
| seance_length required | number Duration of service provision by the specified employee in seconds, |
| technological_card_id required | number or null ID of bill of materials used while providing the service. |
| success | boolean (Successful response status) Response status. |
object (Object of model "Service Staff") | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "master_id": 123,
- "seance_length": 3600,
- "technological_card_id": 123
}{- "success": true,
- "data": {
- "service_id": 123,
- "master_id": 123,
- "length": 3600,
- "technological_card_id": 123
}, - "meta": { }
}Updates an employee service link with provided duration and bill of materials.
| company_id required | number Example: 123 ID of a company. |
| service_id required | number Example: 123 ID of service. |
| master_id required | number Example: 123 ID of staff. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| seance_length required | number Duration of service provision by the specified employee in seconds, |
| technological_card_id required | number or null ID of bill of materials used while providing the service. |
| success | boolean (Successful response status) Response status. |
object (Object of model "Service Staff") | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "seance_length": 3600,
- "technological_card_id": 123
}{- "success": true,
- "data": {
- "service_id": 123,
- "master_id": 123,
- "length": 3600,
- "technological_card_id": 123
}, - "meta": { }
}Deletes an employee service link.
| company_id required | number Example: 123 ID of a company. |
| service_id required | number Example: 123 ID of service. |
| master_id required | number Example: 123 ID of staff. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": null,
- "meta": { }
}1) - company ID| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with access rights categories | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "timetable": {
- "timetable_access": true,
- "master_id": 1000238,
- "position_id": 0,
- "last_days_count": 1000,
- "schedule_edit_access": true,
- "timetable_phones_access": true,
- "timetable_transferring_record_access": true,
- "timetable_statistics_access": true
}, - "record_form": {
- "record_form_access": true,
- "record_form_client_access": true,
- "records_autocomplete_access": true,
- "create_records_access": true,
- "edit_records_access": true,
- "edit_records_attendance_access": true,
- "records_services_cost_access": true,
- "records_services_discount_access": true,
- "record_edit_full_paid_access": true,
- "delete_records_access": true,
- "delete_customer_came_records_access": true,
- "delete_paid_records_access": true,
- "records_goods_access": true,
- "records_goods_create_transaction_access": true,
- "records_goods_create_last_days_count": -1,
- "records_goods_edit_transaction_access": true,
- "records_goods_edit_last_days_count": -1,
- "records_goods_cost_access": true,
- "records_goods_discount_access": true,
- "records_finances_access": true,
- "records_finances_last_days_count": -1,
- "records_finances_pay_from_deposits_access": true,
- "records_group_id_access": true,
- "records_group_id": 134178
}, - "finances": {
- "finances_access": true,
- "finances_accounts_ids": [ ],
- "finances_transactions_access": true,
- "finances_last_days_count": -1,
- "finances_create_transactions_access": true,
- "finances_create_last_days_count": -1,
- "finances_edit_transactions_access": true,
- "finances_edit_last_days_count": -1,
- "finances_delete_transactions_access": true,
- "finances_transactions_excel_access": true,
- "finances_expenses_ids": [ ],
- "finances_accounts_access": true,
- "finances_accounts_banalce_access": true,
- "finances_suppliers_read_access": true,
- "finances_suppliers_create_access": true,
- "finances_suppliers_update_access": true,
- "finances_suppliers_delete_access": true,
- "finances_suppliers_excel_access": true,
- "finances_expenses_read_access": true,
- "expenses_read_access": true,
- "finances_expenses_create_access": true,
- "expenses_create_access": true,
- "finances_expenses_update_access": true,
- "expenses_update_access": true,
- "finances_expenses_delete_access": true,
- "expenses_delete_access": true,
- "finances_kkm_transactions_access": true,
- "kkm_transactions_accounts_access": true,
- "finances_kkm_settings_read_access": true,
- "kkm_settings_reed_access": true,
- "finances_kkm_settings_update_access": true,
- "kkm_settings_update_access": true,
- "finances_settings_invoicing_read_access": true,
- "settings_invoicing_read_access": true,
- "finances_settings_invoicing_update_access": true,
- "settings_invoicing_update_access": true,
- "finances_options_read_access": true,
- "options_read_access": true,
- "finances_options_update_access": true,
- "options_update_access": true,
- "finances_salary_schemes_access": true,
- "finances_salary_calc_access": true,
- "finances_salary_not_limitation_today_access": true,
- "finances_payroll_calculation_create_access": true,
- "finances_payroll_calculation_create_not_limitation_today_access": true,
- "finances_salary_access_master_checkbox": true,
- "finances_salary_access_master_id": 1000237,
- "get_salary_access_master_id": 1000237,
- "finances_salary_master_not_limitation_today_access": true,
- "finances_payroll_calculation_create_by_master_access": true,
- "calculation_create_by_master_not_limitation_today_access": true,
- "finances_period_report_access": true,
- "finances_period_report_excel_access": true,
- "finances_year_report_access": true,
- "finances_year_report_excel_access": true,
- "finances_print_check_access": true,
- "finances_z_report_access": true,
- "finances_z_report_no_limit_today_access": true,
- "finances_z_report_excel_access": true
}, - "clients": {
- "clients_access": true,
- "client_phones_access": true,
- "clients_phones_email_access": true,
- "clients_card_phone_access": true,
- "clients_delete_access": true,
- "clients_excel_access": true,
- "excel_access": true,
- "client_comments_list_access": true,
- "client_comments_add_access": true,
- "client_comments_own_edit_access": true,
- "client_comments_other_edit_access": true,
- "client_files_list_access": true,
- "client_files_upload_access": true,
- "client_files_delete_access": true,
- "clients_visit_master_id": 0,
- "get_visit_master_id": 0
}, - "dashboard": {
- "dashboard_access": true,
- "dash_access": true,
- "dash_phones_access": true,
- "dash_records_access": true,
- "dash_records_last_days_count": -1,
- "dash_records_excel_access": true,
- "dash_records_phones_access": true,
- "dash_message_access": true,
- "dash_message_excel_access": true,
- "dash_message_phones_access": true,
- "dash_reviews_access": true,
- "dash_reviews_delete_access": true,
- "dashboard_calls_access": true,
- "dashboard_calls_excel_access": true,
- "dashboard_calls_phones_access": true
}, - "notification": {
- "notification": true,
- "web_push": true,
- "web_phone_push": true,
- "notification_sms_ending_license": true,
- "notification_sms_low_balance": true,
- "notification_email_ending_license": true
}, - "loyalty": {
- "loyalty_access": true,
- "has_loyalty_access": true,
- "loyalty_cards_manual_transactions_access": true,
- "has_loyalty_cards_manual_transactions_access": true,
- "loyalty_certificate_and_abonement_manual_transactions_access": true
}, - "storages": {
- "storages_access": true,
- "storages_ids": [ ],
- "storages_transactions_access": true,
- "storages_last_days_count": -1,
- "storages_move_goods_access": true,
- "storages_create_transactions_access": true,
- "storages_create_last_days_count": -1,
- "storages_create_transactions_buy_access": true,
- "storages_create_transactions_sale_access": true,
- "storages_edit_transactions_access": true,
- "storages_edit_last_days_count": -1,
- "storages_edit_transactions_buy_access": true,
- "storages_edit_transactions_sale_access": true,
- "storages_delete_transactions_access": true,
- "storages_transactions_excel_access": true,
- "storages_transactions_types": [ ],
- "storages_inventory_access": true,
- "storages_inventory_create_edit_access": true,
- "storages_inventory_delete_access": true,
- "storages_inventory_excel_access": true,
- "storages_remnants_report_access": true,
- "storages_remnants_report_excel_access": true,
- "storages_sales_report_access": true,
- "storages_sales_report_excel_access": true,
- "storages_consumable_report_access": true,
- "storages_consumable_report_excel_access": true,
- "storages_write_off_report_access": true,
- "storages_write_off_report_excel_access": true,
- "storages_turnover_report_access": true,
- "storages_turnover_report_excel_access": true,
- "storages_goods_crud_access": true,
- "storages_goods_create_access": true,
- "storages_goods_update_access": true,
- "storages_goods_title_edit_access": true,
- "storages_goods_category_edit_access": true,
- "storages_goods_selling_price_edit_access": true,
- "storages_goods_cost_price_edit_access": true,
- "storages_goods_units_edit_access": true,
- "storages_goods_critical_balance_edit_access": true,
- "storages_goods_masses_edit_access": true,
- "storages_goods_comment_edit_access": true,
- "storages_goods_archive_access": true,
- "storages_goods_delete_access": true
}, - "settings": {
- "settings_access": true,
- "settings_basis_access": true,
- "settings_information_access": true,
- "users_access": true,
- "delete_users_access": true,
- "create_users_access": true,
- "edit_users_access": true,
- "limited_users_access": false,
- "settings_services_access": true,
- "settings_services_create_access": true,
- "services_edit": true,
- "settings_services_edit_title_access": true,
- "settings_services_relation_category_access": true,
- "settings_services_edit_price_access": true,
- "settings_services_edit_image_access": true,
- "settings_services_edit_online_seance_date_time_access": true,
- "settings_services_edit_online_pay_access": true,
- "settings_services_edit_services_related_resource_access": true,
- "settings_positions_read": true,
- "settings_positions_create": true,
- "settings_positions_delete": true,
- "edit_master_service_and_duration": true,
- "tech_card_edit": true,
- "services_delete": true,
- "settings_master_access": true,
- "master_create": true,
- "master_edit": true,
- "master_delete": true,
- "settings_master_dismiss_access": true,
- "schedule_edit": true,
- "settings_notifications_access": true,
- "settings_email_notifications_access": true,
- "settings_template_notifications_access": true,
- "webhook_read_access": true
}, - "other": {
- "stat_access": true,
- "billing_access": true,
- "send_sms": true,
- "auth_enable_check_ip": false,
- "auth_list_allowed_ip": [ ]
}
}, - "meta": [ ]
}An invitation to manage a location is sent via email or phone as a link. By following the link and completing registration, the user gains access to manage the location according to the permissions assigned. Permission assignment is performed in a separate request after the invitation is sent.
| company_id required | number Example: 123 ID of a company. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
required | Array of objects Array of invites |
| success | boolean Send success status (true) |
| data | string Is null |
object Metadata (contains a message that the data has been saved) |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "invites": [
- {
- "name": "Olga",
- "search": "mail@gmail.com",
- "position": "Administrator",
- "user_role": "administrator",
- "user_permissions": [
- {
- "slug": "timetable_access",
- "value": true
}
], - "staff_id": 12
}
]
}{- "success": true,
- "meta": {
- "message": "Saved"
}
}| company_id required | number Company ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| page | number Page number |
| page_size | number The number of output lines per page. Maximum 200. (Default 25) |
| fields | Array of strings Fields to be returned in the response |
| order_by | string Enum: "id" "name" "phone" "email" "discount" "first_visit_date" "last_visit_date" "sold_amount" "visit_count" What field to sort by |
| order_by_direction | string Enum: "ASC" "DESC" How to sort (ascending / descending) |
| operation | string Enum: "AND" "OR" Type of transaction |
Array of objects Filters for searching by customers |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of clients found) |
| success | boolean Execution success status (false) |
| data | string Contains null |
object Metadata (contains an error message) |
| success | boolean Execution success status (false) |
| data | string Contains null |
object Metadata (contains an error message) |
| success | boolean Execution success status (false) |
object Metadata (contains an error message) |
{- "page": 1,
- "page_size": 3,
- "fields": [
- "id",
- "name"
], - "order_by": "name",
- "order_by_direction": "desc",
- "operation": "AND",
- "filters": [
- {
- "type": "id",
- "state": {
- "value": [
- 1,
- 2,
- 3
]
}
}, - {
- "type": "sold_amount",
- "state": {
- "from": 0,
- "to": 100.77
}
}, - {
- "type": "quick_search",
- "state": {
- "value": "James Smith"
}
}, - {
- "type": "importance",
- "state": {
- "value": [
- 0,
- 1,
- 2,
- 3
]
}
}, - {
- "type": "has_mobile_app",
- "state": {
- "value": true
}
}, - {
- "type": "category",
- "state": {
- "value": [
- 1,
- 7
]
}
}, - {
- "type": "has_passteam_card",
- "state": {
- "value": true
}
}, - {
- "type": "passteam_card_ids",
- "state": {
- "value": [
- "111122223333aaaabbbbcccc"
]
}
}, - {
- "type": "birthday",
- "state": {
- "from": "1990-01-01 00:00:00",
- "to": "2000-01-01 23:59:59"
}
}, - {
- "type": "gender",
- "state": {
- "value": [
- 0,
- 1,
- 2
]
}
}, - {
- "type": "record",
- "state": {
- "staff": {
- "value": [
- 1,
- 2
]
}, - "service": {
- "value": [
- 2,
- 3
]
}, - "service_category": {
- "value": [
- 4,
- 5
]
}, - "status": {
- "value": [
- 1
]
}, - "created": {
- "from": "2025-01-01 00:00:00",
- "to": "2025-01-01 23:59:59"
}, - "records_count": {
- "from": 1,
- "to": 99999
}, - "sold_amount": {
- "from": 1.001,
- "to": 99999.09
}
}
}, - {
- "type": "client",
- "state": {
- "id": {
- "value": [
- 1,
- 2,
- 3
]
}, - "birthday": {
- "from": "1990-01-01 00:00:00",
- "to": "2000-01-01 23:59:59"
}
}
}, - {
- "type": "sale",
- "state": {
- "abonement_balance": {
- "from": 2,
- "to": 3
}
}
}
]
}{- "success": true,
- "data": [
- {
- "name": "James Smith",
- "id": 2
}, - {
- "name": "Sidorov",
- "id": 3
}, - {
- "name": "James Smith",
- "id": 1
}
], - "meta": {
- "total_count": 908
}
}1) - company ID1) - Page number20) - Number of clients per page| company_id required | number Company ID |
| fullname | string Example: fullname=Joh Name (part of the name) for client filtering |
| phone | string Example: phone=7916 Phone (part of the number) for customer filtering |
string Example: email=test@ Email (part) for customer filtering | |
| paid_min | number Example: paid_min=1 Minimum paid to the cashier, to filter customers by the amount of payments |
| paid_max | number Example: paid_max=1 Maximum paid to the cashier, to filter customers by the amount of payments |
| page | number Example: page=1 Page number |
| count | number Example: count=20 Number of customers per page |
| id | number Example: id=66 ID of one or more clients to filter clients |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the page number and number of clients per page) |
{- "success": true,
- "data": [
- {
- "id": 66,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79112345678,
- "email": "asdfgh@g.com",
- "categories": [
- {
- "id": 3,
- "title": "Black list",
- "color": "#0f0f0f"
}, - {
- "id": 4,
- "title": "VIP",
- "color": "#e8d313"
}
], - "sex_id": 0,
- "sex": "unknown",
- "discount": 10,
- "importance_id": 3,
- "importance": "Gold",
- "card": "123456789",
- "birth_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "test",
- "sms_check": 1,
- "sms_not": 0,
- "spent": 71842,
- "balance": 0,
- "visits": 34,
- "last_change_date": "2020-02-01T12:00:00+0400",
- "custom_fields": [ ]
}, - {
- "id": 16,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79112345679,
- "email": "",
- "categories": [ ],
- "sex_id": 0,
- "sex": "unknown",
- "discount": 0,
- "importance_id": 0,
- "importance": "No importance class",
- "card": "",
- "birth_date": 0,
- "comment": "",
- "sms_check": 0,
- "sms_not": 0,
- "spent": 0,
- "balance": 0,
- "visits": 3,
- "last_change_date": "2020-04-01T12:00:00+0400",
- "custom_fields": [ ]
}
], - "meta": {
- "page": 1,
- "total_count": 8
}
}| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| name required | string Client name |
| surname | string Client surname |
| patronymic | string Client middle name |
| phone required | string Customer phone |
string Client Email | |
| sex_id | number Gender of the client (1 - male, 2 - female, 0 - unknown) |
| importance_id | number Client priority level (0 - none, 1 - bronze, 2 - silver, 3 - gold) |
| discount | number Customer Discount |
| card | string Client card number |
| birth_date | string Date of birth of the client in the format yyyy-mm-dd |
| comment | string A comment |
| spent | number How much money spent in the company at the time of adding |
| balance | number Client balance |
| sms_check | number 1 - Happy Birthday by SMS, 0 - do not congratulate |
| sms_not | number 1 - Exclude the client from SMS mailings, 0 - do not exclude |
| categories | object Array of customer category IDs |
| custom_fields | object Array of additional client fields as "api-key": "value" pairs |
{- "success": true,
- "data": {
- "id": 1121412,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79211234567,
- "email": "j.smith@example.com",
- "categories": [ ],
- "sex": "Male",
- "sex_id": 1,
- "discount": 15,
- "importance_id": 1,
- "importance": "Bronze",
- "card": "555888666",
- "birth_date": 952041600,
- "comment": "throws show-off",
- "sms_check": 0,
- "sms_not": 0,
- "spent": 1000,
- "balance": -1200,
- "visits": 0,
- "last_change_date": "2020-05-01T12:00:00+0400",
- "custom_fields": {
- "key-1": "value-1"
}
}, - "meta": [ ]
}| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| name required | string Client name |
| surname | string Client surname |
| patronymic | string Client middle name |
| phone required | string Customer phone |
string Client Email | |
| sex_id | number Gender of the client (1 - male, 2 - female, 0 - unknown) |
| importance_id | number Client priority level (0 - none, 1 - bronze, 2 - silver, 3 - gold) |
| discount | number Customer Discount |
| card | string Client card number |
| birth_date | string Date of birth of the client in the format yyyy-mm-dd |
| comment | string A comment |
| spent | number How much money spent in the company at the time of adding |
| balance | number Client balance |
| sms_check | number 1 - Happy Birthday by SMS, 0 - do not congratulate |
| sms_not | number 1 - Exclude the client from SMS mailings, 0 - do not exclude |
| categories | object Array of customer category IDs |
{- "success": true,
- "data": {
- "created": [
- {
- "id": 19153889,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79213237567,
- "email": "j.smith@example.com",
- "card": "555888666",
- "birth_date": 952041600,
- "comment": "throws show-off",
- "discount": 15,
- "visits": 0,
- "sex_id": 1,
- "sex": "Male",
- "sms_check": 0,
- "sms_bot": 0,
- "spent": 1000,
- "paid": 0,
- "balance": -1200,
- "importance_id": 1,
- "importance": "Bronze",
- "categories": [
- {
- "id": 101,
- "title": "Loyal",
- "color": "#bfd4f2"
}, - {
- "id": 102,
- "title": "Constant",
- "color": "#009800"
}
], - "last_change_date": "2020-09-08T13:33:39+0400",
- "custom_fields": [ ]
}
], - "errors": [
- {
- "phone": 79213237567,
- "name": "James Smith",
- "error": "The client with the specified phone number already exists in the database"
}, - {
- "phone": 721828834101,
- "error": "Client name not specified"
}, - {
- "phone": 123,
- "name": "James Smith",
- "error": "Phone must contain 9 to 15 digits"
}, - {
- "name": "Theodore Hicks",
- "error": "Customer phone number cannot be empty"
}
]
}, - "meta": [ ]
}A list of uploaded client files can be retrieved by providing both the location ID and the client ID in the request. The client ID can be obtained from the client collection.
The response returns an array of client files.
Each client file has the following structure:
| Field | Type | Description | | -----------------| ------- | -------------------------------------------------- ------------------------ | | id | number | File ID | | client_id | number | Client ID | | name | string | Filename with extension | | description | string | File description | | extension | string | File name extension | | mime | string | MIME file type | | link | string | File download link | | date_create | string | File upload date in ISO8601 format | | size | string | Formatted file size string | | username | string | The name of the user who uploaded the file | | user_avatar | string | Avatar of the user who uploaded the file | | can_edit | boolean | Is there a right to change and delete the file? true - there is a right, false - there is no right |
| company_id required | number Company ID |
| client_id required | number Client ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of files) |
{- "success": true,
- "data": [
- {
- "id": 123,
- "client_id": 123456,
- "name": "test.txt",
- "description": "",
- "date_create": "2020-01-01T12:00:00+0400",
- "extension": "txt",
- "mime": "text/plain",
- "link": "/client_files/download/456/123/",
- "user_name": "Viktor Sitnikov",
- "user_avatar": "/images/no-master.png",
- "size": "9 B",
- "can_edit": false
}, - {
- "id": 789,
- "client_id": 123456,
- "name": "photo.jpg",
- "description": "",
- "date_create": "2020-01-30T12:30:00+0400",
- "extension": "jpg",
- "mime": "image/jpeg",
- "link": "/client_files/download/456/789/",
- "user_name": "Viktor Sitnikov",
- "user_avatar": "/images/no-master.png",
- "size": "96.65 KB",
- "can_edit": true
}
], - "meta": {
- "count": 2
}
}| company_id required | number Company ID |
| client_id required | number Client ID |
| file_id required | number File ID |
| Accept | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}Displays the client’s visit history.This method returns the client’s appointment and product purchase history, grouped by visit. Data is filtered based on visit status and paid status. The client is identified using either the client_id or client_phone parameter. All other parameters are optional. Results are sorted by visit date and paginated in batches of 25 items. If multiple visits share the same date as the last item on the page, they will be included on the current page to ensure complete grouping. To retrieve the next page, use the from and to values provided in the meta field of the current response.
| company_id required | number Example: 123 ID of a company. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| client_id required | number or null Client ID. |
| client_phone required | string or null Customer phone number. |
| from required | string or null <date> Period start date. |
| to required | string or null <date> Period end date. |
| payment_statuses required | Array of strings Items Enum: "not_paid" "paid_not_full" "paid_full" "paid_over" Visit payment status: |
| attendance required | number or null Enum: -1 0 1 2 Visit status: |
| success | boolean (Successful response status) Response status. |
object (Customer History Model Object) Data on customer visits, including appointments and product sales. | |
object (An object of date-based pagination information.) Page navigation information containing information about the current, next, and previous pages. The data is sorted and paginated by date in descending order. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "client_id": 123,
- "client_phone": "79998887766",
- "from": "2022-01-31",
- "to": "2022-02-01",
- "payment_statuses": [
- "not_paid"
], - "attendance": -1
}{- "success": true,
- "data": {
- "goods_transactions": [
- {
- "id": 123,
- "comment": "Comment to the sale of goods",
- "date": "2021-01-31 12:34:56",
- "visit_id": 0,
- "record_id": 0,
- "goods": [
- {
- "id": 123,
- "title": "My product",
- "amount": -1,
- "unit": "PCS.",
- "cost_per_unit": 1000,
- "first_cost": -1000,
- "discount_percent": 0,
- "cost_to_pay": 1000,
- "paid_sum": 1000,
- "payment_status": "paid_full"
}
], - "staff": {
- "id": 123,
- "name": "James Smith",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Employee"
}
}, - "company": {
- "id": 123,
- "title": "My branch office."
}
}
], - "records": [
- {
- "id": 123,
- "comment": "Comment to post",
- "date": "2021-01-31 12:34:56",
- "visit_id": 123,
- "attendance": 1,
- "services": [
- {
- "id": 123,
- "title": "My service",
- "first_cost": 1000,
- "discount_percent": 0,
- "cost_to_pay": 1000,
- "paid_sum": 1000,
- "payment_status": "paid_full",
- "consumables": [
- {
- "title": "My consumable",
- "amount": 1,
- "cost_per_unit": 1000,
- "unit": "PCS."
}
]
}
], - "staff": {
- "id": 123,
- "name": "James Smith",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Employee"
}
}, - "company": {
- "id": 123,
- "title": "My branch office."
}, - "tips": {
- "has_tips": false,
- "sum": null
}, - "comer": {
- "id": 123,
- "title": "James Smith",
- "slug": "person"
}
}
]
}, - "meta": {
- "dateCursor": {
- "previous": {
- "to": "2022-01-31",
- "from": "2022-01-20",
- "count": 7
}, - "current": {
- "to": "2022-01-19",
- "from": "2022-01-15",
- "count": 25
}, - "next": {
- "to": "2022-01-14",
- "from": "2022-01-05",
- "count": 25
}
}
}
}Returns a list of a comments for a client and a files in a client details uploads history.
| company_id required | number Example: 123 ID of a company. |
| client_id required | number Example: 123 ID of a company client. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
Array of objects (Object of model "Comment for a client") | |
object (Meta object with response results count) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": [
- {
- "id": 123,
- "create_date": "2023-01-01 12:12:12",
- "update_date": "2023-01-01 12:12:12",
- "type": "default",
- "text": "Comment for a client",
- "files": [ ],
}
], - "meta": {
- "count": 10
}
}Creates a new text comment for a client.
| company_id required | number Example: 123 ID of a company. |
| client_id required | number Example: 123 ID of a company client. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| text required | string Text of a comment for a client. |
| success | boolean (Successful response status) Response status. |
object (Object of model "Comment for a client") Data for an existing comment for a client. | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "text": "Comment for a client"
}{- "success": true,
- "data": {
- "id": 123,
- "create_date": "2023-01-01 12:12:12",
- "update_date": "2023-01-01 12:12:12",
- "type": "default",
- "text": "Comment for a client",
- "files": [ ],
}, - "meta": { }
}Deletes a comment for a client; does not delete files uploaded that triggered creation of a comment.
| company_id required | number Example: 123 ID of a company. |
| client_id required | number Example: 123 ID of a company client. |
| comment_id required | number Example: 123 ID of a comment for client. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": null,
- "meta": { }
}| company_id required | number Company ID |
| id required | number Client ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "data": {
- "id": 16,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79112345679,
- "email": "",
- "categories": [ ],
- "sex": "unknown",
- "discount": 0,
- "importance": "No importance class",
- "card": "",
- "birth_date": 0,
- "comment": "",
- "sms_check": 0,
- "sms_not": 0,
- "spent": 0,
- "balance": 0,
- "visits": 3,
- "last_change_date": "2020-03-01T12:00:00+0400",
- "custom_fields": [ ]
}, - "meta": [ ]
}| company_id required | number Company ID |
| id required | number Client ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| name required | string Client name |
| surname | string Client surname |
| patronymic | string Client middle name |
| phone required | string Customer phone |
string Client Email | |
| sex_id | number Gender of the client (1 - male, 2 - female, 0 - unknown) |
| importance_id | number Client priority level (0 - none, 1 - bronze, 2 - silver, 3 - gold) |
| discount | number Customer Discount |
| card | string Client card number |
| birth_date | string Date of birth of the client in the format yyyy-mm-dd |
| comment | string A comment |
| spent | number How much money spent in the company at the time of adding |
| balance | number Client balance |
| sms_check | number 1 - Happy Birthday by SMS, 0 - do not congratulate |
| sms_not | number 1 - Exclude the client from SMS mailings, 0 - do not exclude |
| labels | object Array of customer category IDs |
| custom_fields | object Array of additional client fields as "api-key": "value" pairs |
{- "success": true,
- "data": {
- "id": 1121412,
- "name": "James",
- "surname": "Smith",
- "patronymic": "Martel",
- "phone": 79211234567,
- "email": "j.smith@example.com",
- "categories": [ ],
- "sex": "Male",
- "sex_id": 1,
- "discount": 15,
- "importance_id": 1,
- "importance": "Bronze",
- "card": "555888666",
- "birth_date": 952041600,
- "comment": "throws show-off",
- "sms_check": 0,
- "sms_not": 0,
- "spent": 1000,
- "balance": -1200,
- "visits": 0,
- "last_change_date": "2020-06-01T12:00:00+0400",
- "custom_fields": {
- "key-1": "value-1"
}
}, - "meta": [ ]
}| company_id required | number Company ID |
| id required | number Client ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
Use this to retrieve appointments for a specific employee
Use this to retrieve appointments for a specific client
User who created the appointment
Use this to filter appointments created by a specific user
Returns appointments with a session starting on or after this date
Returns appointments with a session ending on or before this date
Returns appointments created on or after this date
Returns appointments created on or before this date
Returns appointments created or modified after the specified date and time
Returns appointments created or modified before the specified date and time
| company_id required | number Company ID |
| page | number Example: page=1 Page number |
| count | number Example: count=50 Number of appointments per page |
| staff_id | number Example: staff_id=7572 Employee ID, if you only need appointments for a specific employee |
| client_id | number Example: client_id=572 Client ID. If you need appointments for a specific client |
| created_user_id | number Example: created_user_id=7572 The ID of the user who created the appointment. If you need appointments created by a specific user |
| start_date | string Example: start_date=2025-01-21 Session date starting at (filter by session date). If you need appointments for a session starting from a specific date |
| end_date | string Example: end_date=2025-01-21 Session date to. If you need appointments for a session before a specific date |
| c_start_date | string Example: c_start_date=2025-01-21 Appointment creation date starting from(filter by appointment creation date). If you need appointments created since a specific date |
| c_end_date | string Example: c_end_date=2025-01-21 Appointment creation date by (filter by appointment creation date). |
| changed_after | string Example: changed_after=2025-01-21T23:00:00 The date the appointment was modified/created. If you need appointments created/modified starting from a specific date and time |
| changed_before | string Example: changed_before=2025-01-21T23:00:00 The date the appointment was modified/created. If you need appointments created/modified before a specific date and time |
| include_consumables | number Example: include_consumables=0 Flag for including a list of consumables by appointments in the response |
| include_finance_transactions | number Example: include_finance_transactions=0 Flag to include in the response financial transactions by appointments |
| with_deleted | boolean Include deleted appointments in output (with_deleted=1 will return deleted appointments as well) |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the page number and the number of entries per page) |
{- "success": true,
- "data": [
- {
- "id": 2,
- "company_id": 4564,
- "staff_id": 9,
- "services": [
- {
- "id": 1,
- "title": "Hair extension",
- "cost": 100,
- "manual_cost": 100,
- "cost_per_unit": 100,
- "discount": 0,
- "first_cost": 100,
- "amount": 1
}
], - "goods_transactions": [ ],
- "staff": {
- "id": 9,
- "name": "Oksana",
- "specialization": "hair extension",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 0,
- "votes_count": 0
}, - "date": "2019-01-16 16:00:00",
- "datetime": "2019-01-16T16:00:00+09:00",
- "create_date": "2019-01-16T20:35:11+0900",
- "comment": "do not write down",
- "online": false,
- "visit_attendance": 0,
- "attendance": 0,
- "confirmed": 1,
- "seance_length": 3600,
- "length": 3600,
- "sms_before": 0,
- "sms_now": 0,
- "sms_now_text": "",
- "email_now": 0,
- "notified": 0,
- "master_request": 0,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "visit_id": "8262996",
- "created_user_id": 1073232,
- "deleted": false,
- "paid_full": 0,
- "prepaid": false,
- "prepaid_confirmed": false,
- "last_change_date": "2019-01-16T20:35:15+0900",
- "custom_color": "",
- "custom_font_color": "",
- "record_labels": [ ],
- "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2019-01-16 16:00:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
], - "sms_remain_hours": 5,
- "email_remain_hours": 1,
- "bookform_id": 0,
- "record_from": "",
- "is_mobile": 0,
- "is_sale_bill_printed": false,
- "consumables": [ ],
- "finance_transactions": [ ]
}, - {
- "id": 9,
- "company_id": 4564,
- "staff_id": 49,
- "services": [ ],
- "goods_transactions": [ ],
- "staff": {
- "id": 49,
- "name": "Sergei",
- "specialization": "stylist",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 0,
- "votes_count": 0
}, - "date": "2019-01-16 16:00:00",
- "datetime": "2019-01-16T16:00:00+09:00",
- "create_date": "2019-01-16T20:35:11+0900",
- "comment": "",
- "online": true,
- "visit_attendance": 1,
- "attendance": 1,
- "confirmed": 1,
- "seance_length": 10800,
- "length": 10800,
- "sms_before": 0,
- "sms_now": 0,
- "sms_now_text": "",
- "email_now": 0,
- "notified": 0,
- "master_request": 1,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "visit_id": "8262996",
- "created_user_id": 1073232,
- "deleted": false,
- "paid_full": 0,
- "prepaid": false,
- "prepaid_confirmed": false,
- "last_change_date": "2017-01-09T20:45:30+0900",
- "custom_color": "f44336",
- "custom_font_color": "#ffffff",
- "record_labels": [
- {
- "id": "67345",
- "title": "The employee is not important",
- "color": "#009800",
- "icon": "unlock",
- "font_color": "#ffffff"
}, - {
- "id": "104474",
- "title": "important category",
- "color": "#3b2c54",
- "icon": "odnoklassniki",
- "font_color": "#ffffff"
}
], - "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2019-01-16 16:00:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
], - "sms_remain_hours": 5,
- "email_remain_hours": 1,
- "bookform_id": 0,
- "record_from": "",
- "is_mobile": 0,
- "is_sale_bill_printed": false,
- "consumables": [ ],
- "finance_transactions": [ ]
}
], - "meta": {
- "page": 1,
- "total_count": 10
}
}When creating an appointment for a group event, the event_id parameter becomes mandatory. In this case, the following parameters become optional:
Additional fields You can pass custom values using additional fields created specifically for your company (see the "Additional Fields" section for setup details). Once created, these fields can be included in the custom_fields object when creating an appointment. Each key in this object must match the code of the corresponding additional field. Example:
If your company has the following additional fields: my_custom_field with type="number" some_another_field with type="list"
You can pass their values during appointment creation as follows: custom_fields:
{ "my_custom_field": 123, "some_another_field": ["first value", "second value"] }
| company_id required | number Example: 24699 Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| staff_id | number Employee ID |
Array of objects Service parameters (id, cost, discount) | |
object Client parameters (phone, name, email) | |
| save_if_busy | boolean Whether to keep the appointment if the time is busy or non-working, or give an error |
| datetime | string <date-time> Date and time of appointment |
| seance_length | number Appointment duration in seconds |
| send_sms | boolean Whether to send SMS with the details of the appointment to the client |
| comment | string Appointment Comment |
| sms_remain_hours | number Specifies how many hours before the visit an SMS reminder should be sent to the client. Set to 0 if no reminder is needed. |
| email_remain_hours | number Specifies how many hours before the visit an email reminder should be sent to the client. Set to 0 if no reminder is needed. |
| attendance | number Appointment status (2 - User confirmed the appointment, 1 - User came, services provided, 0 - user waiting, -1 - user did not show) |
| api_id | string External system ID |
| custom_color | string Appointment color |
| record_labels | Array of strings Array of post category IDs |
object Additional appointment fields |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the page number and the number of entries per page) |
{- "staff_id": 8886,
- "services": [
- {
- "id": 331,
- "first_cost": 9000,
- "discount": 50,
- "cost": 4500
}, - {
- "id": 333,
- "first_cost": 2000,
- "discount": 10,
- "cost": 1800
}
], - "client": {
- "phone": "+1-315-555-0175",
- "name": "James Smith",
- "email": "j.smith@example.com"
}, - "save_if_busy": false,
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "seance_length": 3600,
- "send_sms": true,
- "comment": "test entry!",
- "sms_remain_hours": 6,
- "email_remain_hours": 24,
- "attendance": 1,
- "api_id": "777",
- "custom_color": "f44336",
- "record_labels": [
- "67345",
- "104474"
], - "custom_fields": {
- "my_custom_field": 123,
- "some_another_field": [
- "first value",
- "second value"
]
}
}{- "success": true,
- "data": [
- {
- "id": 2,
- "company_id": 4564,
- "staff_id": 9,
- "services": [
- {
- "id": 1,
- "title": "Hair extension",
- "cost": 100,
- "manual_cost": 100,
- "cost_per_unit": 100,
- "discount": 0,
- "first_cost": 100,
- "amount": 1
}
], - "goods_transactions": [ ],
- "staff": {
- "id": 9,
- "name": "Oksana",
- "specialization": "hair extension",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 0,
- "votes_count": 0
}, - "date": "2025-01-21 02:45:00",
- "datetime": "2025-01-21T02:45:00-03:00",
- "create_date": "2025-07-02T05:47:36-0300",
- "comment": "do not write down",
- "online": false,
- "visit_attendance": 0,
- "attendance": 0,
- "confirmed": 1,
- "seance_length": 3600,
- "length": 3600,
- "sms_before": 0,
- "sms_now": 0,
- "sms_now_text": "",
- "email_now": 0,
- "notified": 0,
- "master_request": 0,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "visit_id": "8262996",
- "created_user_id": 1073232,
- "deleted": false,
- "paid_full": 0,
- "prepaid": false,
- "prepaid_confirmed": false,
- "last_change_date": "2019-01-16T20:35:15+0900",
- "custom_color": "",
- "custom_font_color": "",
- "record_labels": [ ],
- "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2025-09-21T23:00:00.000+03:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
], - "consumables": [ ],
- "finance_transactions": [ ]
}, - {
- "id": 9,
- "company_id": 4564,
- "staff_id": 49,
- "services": [ ],
- "goods_transactions": [ ],
- "staff": {
- "id": 49,
- "name": "Sergei",
- "specialization": "stylist",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 0,
- "votes_count": 0
}, - "date": "2025-01-21 02:45:00",
- "datetime": "2025-01-21T02:45:00-03:00",
- "create_date": "2025-07-02T05:47:36-0300",
- "comment": "",
- "online": true,
- "visit_attendance": 1,
- "attendance": 1,
- "confirmed": 1,
- "seance_length": 10800,
- "length": 10800,
- "sms_before": 0,
- "sms_now": 0,
- "sms_now_text": "",
- "email_now": 0,
- "notified": 0,
- "master_request": 1,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "visit_id": "8262996",
- "created_user_id": 1073232,
- "deleted": false,
- "paid_full": 0,
- "prepaid": false,
- "prepaid_confirmed": false,
- "last_change_date": "2017-01-09T20:45:30+0900",
- "custom_color": "f44336",
- "custom_font_color": "#ffffff",
- "record_labels": [
- {
- "id": "67345",
- "title": "The employee is not important",
- "color": "#009800",
- "icon": "unlock",
- "font_color": "#ffffff"
}, - {
- "id": "104474",
- "title": "important category",
- "color": "#3b2c54",
- "icon": "odnoklassniki",
- "font_color": "#ffffff"
}
], - "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2025-09-21T23:00:00.000+03:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
], - "consumables": [ ],
- "finance_transactions": [ ]
}
], - "meta": {
- "page": 1,
- "total_count": 10
}
}Use this to filter appointments for a specific location
Filters appointments with a visit date starting from the specified date (inclusive)
Filters appointments with a visit date up to the specified date (inclusive)
Filters appointments created on or after this date
Returns appointments created on or before this date
Filters appointments created by a specific user
| page | number Example: page=1 Page number |
| editable_length | number Example: editable_length=50 Number of appointments per page, maximum 100 |
| salon_id | number Example: salon_id=1 Location ID |
| start_date | string Example: start_date='17.01.2025' Filter by visit date from |
| end_date | string Example: end_date='17.01.2025' Filter by visit date by |
| created_start_date | string Example: created_start_date='17.01.2025' Filter by appointment creation date from |
| created_end_date | string Example: created_end_date='17.01.2025' Filter by appointment creation date by |
| user_id | number Example: user_id=1 User ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "data": [
- {
- "id": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2025-11-17T00:00:00+0400",
- "create_date": "2025-11-17T16:08:08+0400",
- "comment": "",
- "deleted": false,
- "attendance": 0,
- "length": 3600,
- "notify_by_sms": 1,
- "notify_by_email": 12,
- "master_requested": true,
- "online": false,
- "api_id": "42",
- "last_change_date": "2025-11-18T16:58:59+0400",
- "prepaid": 0,
- "prepaid_confirmed": 0,
- "activity_id": 0,
- "services": [
- {
- "id": 1,
- "title": "beard trim",
- "cost": 100,
- "price_min": 500,
- "price_max": 1500,
- "discount": 0,
- "amount": 1
}
], - "company": {
- "id": 1,
- "title": "Business Example",
- "public_title": "Business Example",
- "business_group_id": 1,
- "business_type_id": 1,
- "country_id": 1,
- "city_id": 1,
- "timezone": 3,
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": 0,
- "phone": "",
- "phones": [ ],
- "site": "www.example.com",
- "allow_delete_record": true,
- "allow_change_record": true,
- "country": "United States",
- "city": "New York"
}, - "staff": {
- "id": 1,
- "name": "James Smith",
- "company_id": 1,
- "specialization": "Barber",
- "position": [ ],
- "rating": 0,
- "show_rating": 1,
- "comments_count": 0,
- "votes_count": 0,
- "average_score": 0,
- "prepaid": "forbidden"
}, - "client": {
- "id": 1,
- "name": "James Smith",
- "phone": "+1-315-555-0175",
- "phone_code": "7",
- "email": "j.smith@example.com"
}, - "custom_fields": {
- "dop-telephone": "+1-315-555-0175"
}
}
], - "meta": {
- "count": 1
}
}| company_id required | number Company ID |
| record_id required | number Appointment ID |
| include_consumables | number Example: include_consumables=0 |
| include_finance_transactions | number Example: include_finance_transactions=0 |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 2,
- "company_id": 4564,
- "staff_id": 9,
- "services": [
- {
- "id": 1,
- "title": "Hair extension",
- "cost": 100,
- "manual_cost": 100,
- "cost_per_unit": 100,
- "discount": 0,
- "first_cost": 100,
- "amount": 1
}
], - "goods_transactions": [ ],
- "staff": {
- "id": 9,
- "name": "Oksana",
- "specialization": "hair extension",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 0,
- "votes_count": 0
}, - "client": {
- "id": 18936825,
- "name": "lx",
- "phone": 70001234567,
- "card": "",
- "email": "client@example.com",
- "success_visits_count": 37,
- "fail_visits_count": 3
}, - "clients_count": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "create_date": "2019-01-17T19:41:44+0900",
- "comment": "do not write down",
- "visit_attendance": 0,
- "attendance": 0,
- "confirmed": 1,
- "seance_length": 3600,
- "length": 3600,
- "sms_before": 0,
- "sms_now": 0,
- "sms_now_text": "",
- "email_now": 0,
- "notified": 0,
- "master_request": 0,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "visit_id": "8263004",
- "created_user_id": 1073232,
- "deleted": false,
- "paid_full": 0,
- "prepaid": false,
- "prepaid_confirmed": false,
- "last_change_date": "2019-01-17T19:44:14+0900",
- "custom_color": "f44336",
- "custom_font_color": "#ffffff",
- "record_labels": [
- {
- "id": "67345",
- "title": "The employee is not important",
- "color": "#009800",
- "icon": "unlock",
- "font_color": "#ffffff"
}, - {
- "id": "104474",
- "title": "interesting category",
- "color": "#3b2c54",
- "icon": "odnoklassniki",
- "font_color": "#ffffff"
}
], - "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 1073232,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2025-09-21T23:00:00.000+03:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
], - "sms_remain_hours": 5,
- "email_remain_hours": 1,
- "bookform_id": 0,
- "record_from": "",
- "is_mobile": 0,
- "is_sale_bill_printed": false,
- "consumables": [
- {
- "id": 2173068,
- "document_id": 8174153,
- "type_id": 2,
- "company_id": 4564,
- "good_id": 4853087,
- "amount": -1,
- "cost_per_unit": 0.03,
- "discount": 0,
- "cost": 0.03,
- "unit_id": 216761,
- "operation_unit_type": 2,
- "storage_id": 91548,
- "supplier_id": 0,
- "client_id": 0,
- "master_id": 0,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "",
- "service_id": 1,
- "user_id": 1073232,
- "deleted": false,
- "pkg_amount": 0
}
], - "finance_transactions": [
- {
- "id": 6024243,
- "document_id": 8174152,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 5,
- "expense_id": 5,
- "account_id": 90459,
- "amount": 100,
- "client_id": 18936825,
- "master_id": 0,
- "supplier_id": 0,
- "comment": "",
- "item_id": 1,
- "target_type_id": 1,
- "record_id": 2,
- "goods_transaction_id": 0,
- "expense": {
- "id": 5,
- "title": "Provision of services"
}, - "account": {
- "id": 90459,
- "title": "Main cash desk"
}, - "client": {
- "id": 18936825,
- "name": "James Smith",
- "phone": "+1-315-555-0175"
}, - "master": [ ],
- "supplier": [ ]
}
]
}, - "meta": [ ]
}When an appointment is changed in a group event, the event_id parameter becomes required, staff_id, services, datetime, session_length parameters become optional
| company_id required | number Company ID |
| record_id required | number Appointment ID |
| include_consumables | number Example: include_consumables=0 |
| include_finance_transactions | number Example: include_finance_transactions=0 |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| staff_id | number Employee ID |
Array of objects Service parameters (id, cost, discount) | |
object Client parameters (phone, name, email) | |
| save_if_busy | boolean Whether to keep the appointment if the time is busy or non-working, or give an error |
| datetime | string <date-time> Date and time of appointment |
| seance_length | number Appointment duration in seconds |
| send_sms | boolean Whether to send SMS with the details of the appointment to the client |
| comment | string Appointment Comment |
| sms_remain_hours | number Specifies how many hours before the visit an SMS reminder should be sent to the client. Set to 0 if no reminder is needed. |
| email_remain_hours | number Specifies how many hours before the visit an email reminder should be sent to the client. Set to 0 if no reminder is needed. |
| attendance | number Appointment status (2 - User confirmed the appointment, 1 - User came, services provided, 0 - user waiting, -1 - user did not show) |
| api_id | string External system ID |
| custom_color | string Appointment color |
| record_labels | Array of strings Array of post category IDs |
object Additional appointment fields |
| success | boolean Success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "staff_id": 8886,
- "services": [
- {
- "id": 331,
- "first_cost": 9000,
- "discount": 50,
- "cost": 4500
}, - {
- "id": 333,
- "first_cost": 2000,
- "discount": 10,
- "cost": 1800
}
], - "client": {
- "phone": "+1-315-555-0175",
- "name": "James Smith",
- "email": "j.smith@example.com"
}, - "save_if_busy": false,
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "seance_length": 3600,
- "send_sms": true,
- "comment": "test entry!",
- "sms_remain_hours": 6,
- "email_remain_hours": 24,
- "attendance": 1,
- "api_id": "777",
- "custom_color": "f44336",
- "record_labels": [
- "67345",
- "104474"
], - "custom_fields": {
- "my_custom_field": 123,
- "some_another_field": [
- "first value",
- "second value"
]
}
}{- "success": true,
- "data": {
- "id": 999,
- "services": [
- {
- "id": 331,
- "first_cost": 9000,
- "discount": 50,
- "cost": 4500
}, - {
- "id": 333,
- "first_cost": 2000,
- "discount": 10,
- "cost": 1800
}
], - "client": {
- "phone": "+1-315-555-0175",
- "name": "James Smith",
- "email": "j.smith@example.com"
}, - "clients_count": 1,
- "staff": {
- "id": 8886,
- "name": "Jack",
- "spec": "stylist"
}, - "datetime": "2025-09-21T23:00:00.000+03:00",
- "seance_length": 3600,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "test entry!",
- "visit_attendance": 1,
- "confirmed": 1,
- "sms_before": 6,
- "sms_now": 1,
- "sms_now_text": "",
- "email_now": 1,
- "notified": 0,
- "master_request": 1,
- "api_id": "",
- "from_url": "",
- "review_requested": 0,
- "activity_id": 0,
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2025-09-21T23:00:00.000+03:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
]
}, - "meta": [ ]
}| company_id required | number Company ID |
| record_id required | number Appointment ID |
| include_consumables | number Example: include_consumables=0 |
| include_finance_transactions | number Example: include_finance_transactions=0 |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| visit_id required | number Example: Visit ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "attendance": 1,
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "comment": 0,
- "records": [
- {
- "id": 37955315,
- "company_id": 4564,
- "staff_id": 55436,
- "services": [ ],
- "events": [ ],
- "goods_transactions": [ ],
- "staff": {
- "id": 55436,
- "name": "Kevin Spacey",
- "specialization": "Master of manicure and pedicure",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "rating": 4.89,
- "votes_count": 0
}, - "client": {
- "id": 4240788,
- "name": "dev1",
- "phone": 71000000001,
- "card": "000000415",
- "email": "",
- "success_visits_count": 58,
- "fail_visits_count": 9
}, - "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2025-09-21T23:00:00.000+03:00",
- "create_date": "2025-03-22T17:55:14+0300",
- "comment": "",
- "online": false,
- "visit_attendance": 1,
- "attendance": 1,
- "confirmed": 1,
- "seance_length": 3600,
- "length": 3600,
- "sms_before": 1,
- "sms_now": 1,
- "sms_now_text": "",
- "email_now": 1,
- "notified": 0,
- "master_request": 0,
- "api_id": "0",
- "from_url": "",
- "review_requested": 0,
- "visit_id": 8260852,
- "created_user_id": 999290,
- "deleted": 0,
- "paid_full": 0,
- "prepaid": 0,
- "prepaid_confirmed": 0,
- "last_change_date": "2025-03-28T17:46:48+0300",
- "custom_color": "",
- "custom_font_color": "",
- "record_labels": [ ],
- "activity_id": 0,
- "custom_fields": [ ],
- "documents": [
- {
- "id": 8172893,
- "type_id": 7,
- "storage_id": 0,
- "user_id": 746310,
- "company_id": 4564,
- "number": 4163,
- "comment": "",
- "date_created": "2025-09-21T23:00:00.000+03:00",
- "category_id": 0,
- "visit_id": 3,
- "record_id": 2,
- "type_title": "Visit"
}
]
}
]
}, - "meta": [ ]
}Block "kkm_transaction_details_container"
Flag "last_operation_type"
| Meaning | Description |
|---|---|
| 0 | Print return receipt |
| 1 | Print sales receipt |
Types of all transactions with cash register
| Meaning | Description |
|---|---|
| 0 | Sales operation – Active for documents of type Visit |
| 1 | Sale return operation – Active for documents of type Visit |
| 2 | Correction operation |
| 4 | Shift opening operation – Opens a new POS shift |
| 5 | Shift closing operation – Closes the current POS shift |
| 9 | Get POS status – Retrieves the current status of the POS device |
| 11 | Get POS team status – Retrieves the status of all POS devices connected to the team |
| 12 | Correction operation |
| 13 | Print X-report – Prints a non-fiscal summary report of the current shift |
| 6 | Cash deposit – Registers a cash-in transaction in the POS |
| 7 | Cash withdrawal – Registers a cash-out transaction in the POS |
Statuses of All POS Operations
| Meaning | Description |
|---|---|
| 0 | Connection error with POS – Unable to establish a connection with the POS device |
| 1 | Success – Operation completed successfully |
| 2 | Sent for printing – The request has been sent to the POS and is waiting for print completion |
| 3 | Runtime error – An error occurred while processing the operation on the POS device |
| 4 | Status check error – Failed to retrieve the current status of the POS |
| 5 | Waiting for POS readiness – Operation is pending until the POS device becomes ready |
Document Types
| Meaning | Description |
|---|---|
| 1 | Sale of products |
| 2 | Provision of services |
| 3 | Arrival of products |
| 4 | Products write-off |
| 5 | Transfer of products |
| 6 | Inventory |
| 7 | Visit |
| 8 | Consumables write-off |
| salon_id required | number Example: Location ID |
| record_id required | number Example: Appointment ID |
| visit_id required | number Example: Visit ID |
| Accept required | string e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer access_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "payment_transactions": [
- {
- "id": 6023813,
- "document_id": 8172806,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 5,
- "expense_id": 5,
- "account_id": 32299,
- "amount": 10,
- "client_id": 4241492,
- "master_id": 0,
- "supplier_id": 0,
- "comment": "",
- "item_id": 1162679,
- "target_type_id": 1,
- "record_id": 13136569,
- "goods_transaction_id": 0,
- "expense": {
- "id": 5,
- "title": "Provision of services"
}, - "account": {
- "id": 32299,
- "title": "Deposits (payment in cash)"
}, - "client": {
- "id": "4241492",
- "name": "ModulKassaClient",
- "phone": "+1-315-555-0175"
}, - "master": [ ],
- "supplier": [ ]
}
], - "loyalty_transactions": [
- {
- "id": 10614,
- "status_id": 1,
- "amount": 0.5,
- "type_id": 2,
- "program_id": 145,
- "card_id": 20013,
- "salon_group_id": 646,
- "item_id": 0,
- "item_type_id": 0,
- "item_record_id": 0,
- "goods_transaction_id": 0,
- "is_discount": false,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 2,
- "title": "Loyalty programs"
}
}
], - "kkm_transaction_details_container": {
- "last_operation_type": 0,
- "transactions": [
- {
- "id": 1047,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 1,
- "sum": 13,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 1,
- "title": "Successfully"
}, - "document": {
- "id": 2045,
- "type": 7,
- "type_title": "Visit"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
]
}, - "items": [
- {
- "id": 0,
- "item_id": 1162679,
- "item_type_id": 1,
- "record_id": 13136569,
- "item_title": "Haircut at the TOP-master",
- "amount": 2,
- "first_cost": 20,
- "manual_cost": 10,
- "discount": 50,
- "cost": 10,
- "master_id": 13136569,
- "good_id": 0,
- "service_id": 1162679,
- "event_id": 0,
- "is_service": true,
- "is_event": false,
- "is_good": false
}
]
}, - "meta": [ ]
}| visit_id required | number Example: Visit ID |
| record_id required | number Example: Appointment ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| attendance required | number Visit status (2 - The user confirmed the appointment, 1 - The user came, the services were provided, 0 - the user is waiting, -1 - the user did not show) |
| comment required | string A comment |
Array of objects Array of objects of new commodity transactions | |
| deleted_transaction_ids | Array of objects Array of instance IDs |
Array of objects Array of commodity transactions objects | |
Array of objects Array of objects with services | |
| fast_payment | number Quick payment 1 - cash, 2 - cashless, 129 - cash and print, 130 - cashless and print |
| visit_id required | number Example: Visit ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| date required | string <date-time> date and time |
| service_id required | number Service ID |
| staff_id required | number Employee ID |
| capacity required | number Capacity |
| resource_instance_ids | Array of numbers Array of resource instance IDs |
| force required | boolean Ignore errors (busy master/resources, etc.) |
| length | number Event duration in seconds |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "date": "2017-10-10 15:30",
- "service_id": 1185299,
- "staff_id": 26427,
- "length": 3600,
- "capacity": 9,
- "resource_instance_ids": [
- 3127
], - "force": false
}{- "success": true,
- "data": {
- "id": 108,
- "salon_id": 4564,
- "service_id": 1185299,
- "staff_id": 26427,
- "date": "2025-09-21T23:00:00.000+03:00",
- "length": 3600,
- "capacity": 9,
- "records_count": 0,
- "color": "",
- "font_color": "",
- "service": {
- "id": 1185299,
- "title": "Group manicure",
- "category_id": 754917
}, - "staff": {
- "id": 26427,
- "name": "Monica Bellucci",
- "company_id": 4564
}, - "resource_instances": [
- {
- "id": 3127,
- "title": "Manicure machine #1",
- "resource_id": 1364
}
]
}, - "meta": [ ]
}| company_id required | number Company ID |
| activity_id required | number group event ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 108,
- "salon_id": 4564,
- "service_id": 1185299,
- "staff_id": 26427,
- "date": "2025-09-21T23:00:00.000+03:00",
- "length": 3600,
- "capacity": 9,
- "records_count": 0,
- "color": "",
- "font_color": "",
- "service": {
- "id": 1185299,
- "title": "Group manicure",
- "category_id": 754917
}, - "staff": {
- "id": 26427,
- "name": "Monica Bellucci",
- "company_id": 4564
}, - "resource_instances": [
- {
- "id": 3127,
- "title": "Manicure machine #1",
- "resource_id": 1364
}
]
}, - "meta": [ ]
}| company_id required | number Company ID |
| activity_id required | number Group Event ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| date required | string <date-time> date and time |
| service_id required | number Service ID |
| staff_id required | number Employee ID |
| capacity required | number Capacity |
| resource_instance_ids | Array of numbers Array of resource instance IDs |
| force required | boolean Ignore errors (busy master/resources, etc.) |
| length | number Event duration in seconds |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "date": "2017-10-10 15:30",
- "service_id": 1185299,
- "staff_id": 26427,
- "length": 3600,
- "capacity": 9,
- "resource_instance_ids": [
- 3127
], - "force": false
}{- "success": true,
- "data": {
- "id": 108,
- "salon_id": 4564,
- "service_id": 1185299,
- "staff_id": 26427,
- "date": "2025-09-21T23:00:00.000+03:00",
- "length": 3600,
- "capacity": 9,
- "records_count": 0,
- "color": "",
- "font_color": "",
- "service": {
- "id": 1185299,
- "title": "Group manicure",
- "category_id": 754917
}, - "staff": {
- "id": 26427,
- "name": "Monica Bellucci",
- "company_id": 4564
}, - "resource_instances": [
- {
- "id": 3127,
- "title": "Manicure machine #1",
- "resource_id": 1364
}
]
}, - "meta": [ ]
}| company_id required | number Company ID |
| activity_id required | number group event ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}| company_id required | number Example: 123 ID of a company. |
| service_ids | Array of integers Example: service_ids=123 Filter by services IDs. |
| staff_ids | Array of integers Example: staff_ids=456 Filter by staff IDs. |
| resource_ids | Array of integers Example: resource_ids=789 Filter by resources IDs. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
Array of objects (Object "Group events search filter") | |
object (Meta object with response results count) Additional response data. |
{- "success": true,
- "data": [
- {
- "code": "staff",
- "title": "Staff",
- "data": [
- {
- "id": 1,
- "title": "Staff 1",
- "is_disabled": true
}, - {
- "id": 2,
- "title": "Staff 2",
- "is_disabled": false
}
]
}, - {
- "code": "service",
- "title": "Service",
- "data": [
- {
- "id": 1,
- "title": "Service 1",
- "is_disabled": true
}, - {
- "id": 2,
- "title": "Service 2",
- "is_disabled": false
}
]
}, - {
- "code": "resource",
- "title": "Resource",
- "data": [
- {
- "id": 1,
- "title": "Resource 1",
- "is_disabled": true
}, - {
- "id": 2,
- "title": "Resource 2",
- "is_disabled": false
}
]
}, - {
- "code": "service_category",
- "title": "Service category",
- "data": [
- {
- "id": 1,
- "title": "Category 1",
- "is_disabled": true
}, - {
- "id": 2,
- "title": "Category 2",
- "is_disabled": false
}
]
}
], - "meta": {
- "count": 4
}
}| company_id required | number Example: 123 ID of a company. |
| service_ids | Array of integers Example: service_ids=123 Filter by services IDs. |
| staff_ids | Array of integers Example: staff_ids=456 Filter by staff IDs. |
| resource_ids | Array of integers Example: resource_ids=789 Filter by resources IDs. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
object (Object "Dates range for group events search") Dates range for group events search. | |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": {
- "min_date": "2023-06-01",
- "max_date": "2023-07-15"
}, - "meta": [ ]
}| company_id required | number Example: 123 ID of a company. |
| from required | string Example: from=2023-06-01 Search start date (YYYY-MM-DD format). |
| till required | string Example: till=2023-07-15 Search end date (YYYY-MM-DD format). |
| service_ids | Array of integers Example: service_ids=123 Filter by services IDs. |
| staff_ids | Array of integers Example: staff_ids=456 Filter by staff IDs. |
| resource_ids | Array of integers Example: resource_ids=789 Filter by resources IDs. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
{- "success": true,
- "data": [
- "2023-06-01",
- "2023-06-02",
- "2023-06-08",
- "2023-07-04",
- "2023-07-15"
], - "meta": [ ]
}| company_id required | number Example: 123 ID of a company. |
| from required | string Example: from=2023-06-01 Search start date (YYYY-MM-DD format). |
| till required | string Example: till=2023-07-15 Search end date (YYYY-MM-DD format). |
| service_ids | Array of integers Example: service_ids=123 Filter by services IDs. |
| staff_ids | Array of integers Example: staff_ids=456 Filter by staff IDs. |
| resource_ids | Array of integers Example: resource_ids=789 Filter by resources IDs. |
| page | number Example: page=1 Page number (default 1). |
| count | number Example: count=25 Page size (default 25). |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of events found) |
{- "success": true,
- "data": [
- {
- "id": 3480140,
- "service_id": 5243360,
- "company_id": 68570,
- "staff_id": 921105,
- "date": "2025-09-21T23:00:00.000+03:00",
- "length": 3600,
- "capacity": 40,
- "records_count": 0,
- "color": "",
- "instructions": "",
- "stream_link": "",
- "font_color": "",
- "notified": false,
- "prepaid": "forbidden",
- "service": {
- "id": 5243360,
- "category_id": 5092305,
- "title": "Lecture on psychoanalysis",
- "price_min": 500,
- "price_max": 500,
- "comment": "Not",
- "image_url": "",
- "salon_service_id": 5792535,
- "prepaid": "forbidden",
- "category": {
- "id": 5092305,
- "category_id": 1,
- "title": "Psychoanalysis"
}
}, - "staff": {
- "id": 921105,
- "name": "Natalie",
- "company_id": 68570,
- "specialization": "Psychotherapist",
- "rating": 4.57,
- "show_rating": 0,
- "comments_count": 7,
- "votes_count": 0,
- "average_score": 4.57,
- "prepaid": "forbidden",
- "position": {
- "id": 123340,
- "title": "Psychotherapist"
}
}, - "resource_instances": [
- {
- "id": 83030,
- "title": "Psychotherapist's office. #one",
- "resource_id": 34895
}
], - "labels": [ ]
}
], - "meta": {
- "count": 1
}
}| company_id required | number Example: 4564 Company ID |
| staff_id | number Employee ID to filter |
| term | string Search by name or part of the service name |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| staff_id | number Employee ID to filter |
| term | string Search by name or part of the service name |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of services found) |
{- "staff_id": 1,
- "term": "test"
}{- "success": true,
- "data": [
- {
- "id": 1209148,
- "title": "Fitness test",
- "capacity": 5,
- "price_min": 2,
- "price_max": 3,
- "is_multi": true,
- "category": {
- "id": 1285356,
- "title": "Group services"
}, - "staff": [
- {
- "id": 37695,
- "name": "Kim Kardashian",
- "length": 7200
}
], - "resources": [
- {
- "id": 464,
- "title": "massage room",
- "salon_id": 4564
}
]
}
], - "meta": {
- "count": 1
}
}Дублирование событий происходит на основе набора параметров, объединенных в сущность «стратегия дублирования».
| Поле | Тип | Описание |
|---|---|---|
| заголовок | нить | Название стратегии |
| repeat_mode_id | целое число | Режим повтора |
| дней | целое число[] | Список дней недели: 0 Вс, 6 Пт |
| интервал | целое число | Перерыв в поиске дат, в единицах типа |
| тип_контента | целое число | Повторные встречи? 1 — нет, 2 — да |
Режим повторения может принимать значения
| Значение | Описание | Блок перерыва |
|---|---|---|
| 1 | Ежедневно | День |
| 2 | Будни | - |
| 3 | Пн Ср Пт | - |
| 4 | Вт Чт | - |
| 5 | Каждую неделю | Неделя |
| 6 | Каждый месяц | Месяц |
| 7 | Каждый год | Год |
Поле дней актуально только для режима 5 - неделя, для указания конкретных дней повторения. Если указать repeat_mode = 5, days = [1,4], interval = 2, то событие будет повторяться каждую 3-ю неделю по пн и чт.
| company_id необходимый | число Пример: 4564 Идентификатор компании |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
{- "success": true,
- "data": [
- {
- "id": 2,
- "company_id": 4564,
- "title": "test pattern",
- "repeat_mode_id": 1,
- "repeat_mode": {
- "id": 1,
- "title": "Daily"
}, - "days": [ ],
- "interval": 0,
- "content_type": 1
}
], - "meta": {
- "count": 1
}
}| company_id необходимый | число Идентификатор компании |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| заголовок необходимый | нить Имя |
| дней | Массив объектов Дни повторения для еженедельного режима |
| repeat_mode_id необходимый | число Режим повтора |
| интервал | число Перерыв в поиске дат |
| тип_контента | число Повторные встречи? 1 — нет, 2 — да |
{- "success": true,
- "data": {
- "id": 3,
- "company_id": 4564,
- "title": "Test duplication strategy",
- "repeat_mode_id": 5,
- "repeat_mode": {
- "id": 5,
- "title": "Every week"
}, - "days": [
- 1,
- 4
], - "interval": 2,
- "content_type": 1
}, - "meta": [ ]
}| company_id необходимый | число Пример: 4564 Идентификатор компании |
| strategy_id необходимый | число Пример: 3 Идентификатор стратегии репликации |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| заголовок необходимый | нить Имя |
| дней | Массив объектов Дни повторения для еженедельного режима |
| repeat_mode_id необходимый | число Режим повтора |
| интервал | число Перерыв в поиске дат |
| тип_контента | число Повторные встречи? 1 — нет, 2 — да |
{- "success": true,
- "data": {
- "id": 3,
- "company_id": 4564,
- "title": "New test duplication strategy",
- "repeat_mode_id": 5,
- "repeat_mode": {
- "id": 5,
- "title": "Every week"
}, - "days": [
- 2,
- 3
], - "interval": 3,
- "content_type": 1
}, - "meta": [ ]
}Запрос на дублирование можно подать тремя способами:
Указание списка дат и времени для дублирования
Указание идентификатора стратегии повторения
Указав все параметры повторения
| company_id необходимый | число Пример: 1 |
| идентификатор_активности необходимый | число Пример: 2 |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
{ }{- "success": true,
- "data": [
- {
- "id": 9182,
- "service_id": 1209148,
- "salon_id": 4564,
- "master_id": 1000265,
- "date": "2025-09-21T23:00:00.000+03:00",
- "length": 7200,
- "capacity": 5,
- "records_count": 0,
- "color": "",
- "instructions": "",
- "stream_link": "",
- "font_color": "",
- "notified": false,
- "timestamp": "2025-09-21T23:00:00.000+03:00",
- "service": {
- "id": 1209148,
- "category_id": 1285356,
- "title": "Fitness \"test\"",
- "price_min": 2,
- "price_max": 3,
- "prepaid": "forbidden"
}, - "resource_instances": [
- {
- "id": 1094,
- "title": "Massage room 1st floor",
- "resource_id": 464
}
], - "master": {
- "id": 1000265,
- "name": "Master",
- "company_id": 4564,
- "specialization": "321",
- "rating": 0,
- "show_rating": 1,
- "prepaid": "allowed",
- "position": [ ]
}, - "records": [ ],
- "labels": [ ]
}
], - "meta": {
- "count": 2
}
}Даты календаря встреч возвращаются в виде массива строк, например: ["2015-10-26", "2015-10-30"]. Для получения этого списка необходимо указать контрольную дату. В ответе будут указаны доступные рабочие дни для указанного местоположения или сотрудника относительно этой даты.
| company_id необходимый | число Идентификатор компании |
| дата необходимый | нить Дата в формате ISO8601. Фильтр по дате бронирования (например, «30 сентября 2015 г.»). |
| staff_id | число Идентификационный номер сотрудника. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
{- "success": true,
- "data": [
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00",
- "2025-09-21T23:00:00.000+03:00"
], - "meta": [ ]
}Объект комментария имеет следующие поля:
| Поле | Тип | Описание |
|---|---|---|
| идентификатор | число | Идентификатор комментария |
| идентификатор_салона | число | Идентификатор компании |
| тип | число | 1 - комментарий специалисту, 0 - салону |
| master_id | число | Идентификатор специалиста, если тип = 1 |
| текст | нить | Текст комментария |
| дата | нить | Дата, когда был оставлен комментарий |
| рейтинг | число | Рейтинг (от 1 до 5) |
| ID пользователя | число | Идентификатор пользователя, оставившего комментарий |
| имя пользователя | нить | Имя пользователя, оставившего комментарий |
| user_avatar | нить | Аватар пользователя, оставившего комментарий |
| запись_идентификатор | число | Идентификатор поста, после которого был оставлен отзыв (значение будет ненулевым, если отзыв был оставлен по ссылке с просьбой оставить отзыв после посещения) |
| company_id необходимый | число Идентификатор компании |
| Дата начала | нить Дата в формате ISO8601. Фильтрация по дате с (например, «2015-09-30»). |
| конечная_дата | нить Дата в формате ISO8601. Фильтр по дате (например, «2015-09-30»). |
| staff_id | число Идентификатор сотрудника |
| рейтинг | число Рейтинг. Фильтр по отзывам с определённым рейтингом. |
| страница | число Номер страницы |
| считать | число Количество отзывов на странице |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| успех | булев Статус успешного выполнения (истина) |
Массив объектов Массив объектов с данными | |
| мета | Массив объектов Метаданные (пустой массив) |
{- "success": true,
- "data": [
- {
- "id": "18437",
- "type": "1",
- "master_id": "8864",
- "text": "Fine!",
- "date": "2025-09-21T23:00:00.000+03:00",
- "rating": "4",
- "user_id": "157169",
- "user_name": "Victor Sitnikov",
- "user_avatar": "/images/no-master.png",
- "record_id": 100001
}
], - "meta": [ ]
}| company_id необходимый | число Идентификатор компании |
| staff_id необходимый | число Идентификатор сотрудника, указывайте при создании отзыва о сотруднике |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| отметка необходимый | число Оценка от 1 до 5 |
| текст необходимый | нить Текст отзыва |
| имя необходимый | нить Имя пользователя, которое будет отображаться на странице обзора |
| успех | булев Статус успешного выполнения (истина) |
Массив объектов Массив объектов с данными | |
| мета | Массив объектов Метаданные (пустой массив) |
{- "mark": "4",
- "text": "Everything is very bad!",
- "name": "Victor"
}{- "success": true,
- "data": {
- "type": "1",
- "master_id": "8864",
- "id": "18437",
- "text": "Everything is very bad!",
- "date": "2025-09-21T23:00:00.000+03:00",
- "rating": "4",
- "user_id": "157169",
- "user_name": "Victor",
- "user_avatar": "/images/no-master.png"
}, - "meta": [ ]
}Объект «Пользователь компании»
| company_id необходимый | число Идентификатор компании |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| успех | булев Статус успешного выполнения (истина) |
Массив объектов Массив объектов с данными | |
| мета | Массив объектов Метаданные (пустой массив) |
{- "success": true,
- "data": [
- {
- "id": 224348,
- "firstname": "James",
- "login": "j.smith",
- "email": "j.smith@example.com",
- "phone": "+1-315-555-0175",
- "information": "Test user",
- "access": {
- "stat_access": true,
- "schedule_edit_access": false,
- "client_phones_access": false,
- "clients_access": false,
- "settings_access": false,
- "edit_records_access": false,
- "timetable_access": true,
- "billing_access": false,
- "users_access": false,
- "excel_access": false,
- "finances_access": false,
- "storages_access": false,
- "send_sms": true,
- "master_id": 0
}
}, - {
- "id": 11,
- "firstname": "James",
- "login": "j.smith",
- "email": "j.smith@example.com",
- "phone": "+1-315-555-0175",
- "information": "Test user",
- "access": {
- "stat_access": true,
- "schedule_edit_access": true,
- "client_phones_access": true,
- "clients_access": true,
- "settings_access": true,
- "edit_records_access": true,
- "timetable_access": true,
- "billing_access": true,
- "users_access": false,
- "excel_access": true,
- "finances_access": true,
- "storages_access": true,
- "send_sms": true,
- "master_id": 0
}
}
], - "meta": [ ]
}Метод позволяет получить пользователей компании.
Объект «Пользователь компании»:
| Атрибут | Тип | Описание |
|---|---|---|
| идентификатор | число | ID пользователя |
| имя | нить | Имя пользователя |
| телефон | нить | Телефон пользователя |
| электронная почта | нить | Электронная почта пользователя |
| информация | нить | Информация о пользователе |
| is_approved | булев | Принял ли пользователь приглашение управлять компанией |
| is_non_deletable | булев | Является ли пользователь неудаляемым |
| company_id необходимый | число Идентификатор компании |
| фильтр[одобрено] | число Пример: фильтр[is_approved]=1 Принял ли пользователь приглашение на управление компанией. 1 — принято, 0 — не принято. |
| Принимать необходимый | нить Пример: application/vnd.api.v2+json например application/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| успех | булев Статус ответа. |
Массив объектов Данные ответа. | |
объект Дополнительные данные об ответах. |
| успех | Логическое значение ( статус неудачного ответа ) Статус ответа. |
| данные | объект или null ( нет данных в ответе ) Данные ответа. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": [
- {
- "id": 10,
- "name": "Bob Williams",
- "phone": "+1-315-555-0175",
- "email": "b.williams@example.com",
- "information": "Manager",
- "is_approved": false,
- "is_non_deletable": false
}, - {
- "id": 11,
- "name": "Oliver Davis",
- "phone": "+1-315-555-0176",
- "email": "o.davis@example.com",
- "information": "Administrator",
- "is_approved": true,
- "is_non_deletable": true
}
], - "meta": {
- "count": 2
}
}| company_id required | number Example: 123 ID of a company. |
| user_id required | number User ID |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": false,
- "data": null,
- "meta": {
- "message": "Authentication needed."
}
}The company checkout object has the following fields:
| Field | Type | Description |
|---|---|---|
| id | number | Checkout ID |
| title | string | Title |
| type | number | 1 - for non-cash payments, 0 for cash |
| comment | string | Description to the checkout |
| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 13881,
- "title": "Main cash desk",
- "type": 0,
- "comment": "Standing at the reception"
}, - {
- "id": 13882,
- "title": "Payment account",
- "type": 1,
- "comment": "For non-cash payments"
}, - {
- "id": 21961,
- "title": "Advances",
- "type": 0,
- "comment": ""
}
], - "meta": [ ]
}The company inventory object has the following fields:
| Field | Type | Description |
|---|---|---|
| id | number | Inventory ID |
| title | string | Title |
| for_services | number | 1 - if used for automatic write-off of consumables |
| for_sale | number | 1 - if the default inventory for selling products |
| comment | string | Description of the inventory |
| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "title": "Consumables",
- "for_service": 1,
- "for_sale": 0,
- "comment": "To account for consumables"
}, - {
- "id": 2,
- "title": "Products",
- "for_service": 0,
- "for_sale": 1,
- "comment": "To record store sales"
}, - {
- "id": 23061,
- "title": "Ors",
- "for_service": 0,
- "for_sale": 1,
- "comment": "Nz"
}
], - "meta": [ ]
}The object for creating SMS mailing has the following fields:
| Field | Type | Description |
|---|---|---|
| client_ids | array of numbers | Array of client IDs |
| text | string | SMS text message |
| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| client_ids | Array of numbers Array of client IDs |
| text | string SMS text message |
| success | boolean Execution success status (true) |
| data | string Is null |
object An object containing a 201 status code message |
{- "client_ids": [
- 1,
- 2,
- 3,
- 4,
- 5
], - "text": "Dear clients, we congratulate you on being our clients! You are very lucky!"
}{- "success": true,
- "meta": {
- "message": "Accepted"
}
}The object for creating SMS mailing has the following fields:
| Field | Type | Description |
|---|---|---|
| text | string | SMS text message |
Attention: If there are no filters, SMS mailing will go to the entire database!
| company_id required | number Company ID |
| fullname | string Example: fullname='Joh' Name (part of the name) for client filtering |
| phone | string Example: phone='7916' Phone (part of the number) for customer filtering |
string Example: email='test@' Email (part) for customer filtering |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| text | string SMS text message |
| success | boolean Execution success status (true) |
| data | string Is null |
object An object containing a 201 status code message |
{- "text": "Dear clients, we congratulate you on being our clients! You are very lucky!"
}{- "success": true,
- "meta": {
- "message": "Accepted"
}
}page: Page number
count: Number of customers per page
account_id: Checkout ID
supplier_id: Supplier ID
client_id: Client ID
user_id: user ID
master_id: Employee ID
type: transaction type
real_money: Indicates whether this is a real-money (fiat) transaction
deleted: whether the transaction was deleted
start_date: start date of the period
end_date: end date of the period
balance_is: 0 - any balance, 1 - positive, 2 - negative
document_id: document ID
| company_id required | number Company ID |
| page | number Example: page=1 Page number |
| count | number Example: count=50 Number of customers per page |
| account_id | number Example: account_id=0 Checkout ID |
| supplier_id | number Example: supplier_id=0 Supplier ID |
| client_id | number Example: client_id=0 Client ID |
| user_id | number Example: user_id=0 User ID |
| master_id | number Example: master_id=0 Employee ID |
| type | number Example: type=0 transaction type |
| real_money | number Example: real_money=0 Indicates whether this is a real-money (fiat) transaction |
| deleted | number Example: deleted=0 whether the transaction was deleted |
| start_date | number Example: start_date='' period start date |
| end_date | number Example: end_date='' period end date |
| balance_is | number Example: balance_is=0 0 - any balance, 1 - positive, 2 - negative |
| document_id | number Example: document_id=0 document ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "4815162342",
- "document_id": 22256641,
- "expense": {
- "id": "5",
- "title": "Provision of services"
}, - "date": "2016-04-13T15:34:31+0400",
- "amount": "1000.00",
- "comment": "Comment",
- "master": {
- "id": "1926",
- "title": "Sweeney Todd"
}, - "supplier": {
- "id": "1968",
- "title": "George"
}, - "account": {
- "id": "23182",
- "title": "Cards"
}, - "client": {
- "id": "481516",
- "name": "John Turk",
- "phone": 79876543210
}, - "last_change_date": "2020-02-01T12:00:00+0400",
- "record_id": 308786662,
- "visit_id": 262551993,
- "sold_item_id": 7134634,
- "sold_item_type": "service"
}
], - "meta": [ ]
}record_id: record ID
visit_id: ID of the visit
| company_id required | number Company ID |
| record_id | number Example: record_id=0 Appointment ID |
| visit_id | number Example: visit_id=0 Visit ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "4815162342",
- "document_id": 22256641,
- "expense": {
- "id": "5",
- "title": "Provision of services"
}, - "date": "2016-04-13T15:34:31+0400",
- "amount": "1000.00",
- "comment": "Comment",
- "master": {
- "id": "1926",
- "title": "Sweeney Todd"
}, - "supplier": {
- "id": "1968",
- "title": "George"
}, - "account": {
- "id": "23182",
- "title": "Cards"
}, - "client": {
- "id": "481516",
- "name": "John Turk",
- "phone": 79876543210
}, - "last_change_date": "2020-02-01T12:00:00+0400",
- "record_id": 308786662,
- "visit_id": 262551993,
- "sold_item_id": 7134634,
- "sold_item_type": "service"
}
], - "meta": [ ]
}| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| expense_id | number Payment item |
| amount | number <float> Transaction amount |
| account_id | number Checkout ID |
| client_id | number Client ID |
| supplier_id | number Supplier ID |
| master_id | number Employee ID |
| comment | number A comment |
| date | string <date-time> Transaction creation date |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "expense_id": 2640,
- "amount": 100,
- "account_id": 39105,
- "client_id": 4240788,
- "supplier_id": 0,
- "master_id": 0,
- "comment": "Transaction comment",
- "date": "2025-09-21T23:00:00.000+03:00"
}{- "success": true,
- "data": {
- "id": 277016617,
- "document_id": 0,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 5,
- "expense_id": 5,
- "account_id": 774020,
- "amount": 100,
- "client_id": 51520012,
- "master_id": 921395,
- "supplier_id": 0,
- "comment": "Transaction comment",
- "item_id": 0,
- "target_type_id": 0,
- "record_id": 0,
- "goods_transaction_id": 0,
- "expense": {
- "id": 5,
- "title": "Provision of services"
}, - "account": {
- "id": 774020,
- "title": "Archive cash desk",
- "is_cash": true,
- "is_default": false
}, - "client": {
- "id": 51520012,
- "name": "Sweeney Todd",
- "phone": "+1-315-555-0175",
- "email": "mail@example.com"
}, - "master": {
- "id": 921395,
- "name": "Valeria"
}, - "supplier": [ ]
}, - "meta": [ ]
}| company_id required | number Company ID |
| transaction_id required | number transaction ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "4815162342",
- "document_id": 22256641,
- "expense": {
- "id": "5",
- "title": "Provision of services"
}, - "date": "2016-04-13T15:34:31+0400",
- "amount": "1000.00",
- "comment": "Comment",
- "master": {
- "id": "1926",
- "title": "Sweeney Todd"
}, - "supplier": {
- "id": "1968",
- "title": "George"
}, - "account": {
- "id": "23182",
- "title": "Cards"
}, - "client": {
- "id": "481516",
- "name": "John Turk",
- "phone": 79876543210
}, - "last_change_date": "2020-02-01T12:00:00+0400",
- "record_id": 308786662,
- "visit_id": 262551993,
- "sold_item_id": 7134634,
- "sold_item_type": "service"
}
], - "meta": [ ]
}| company_id required | number Company ID |
| transaction_id required | number transaction ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| expense_id | number Payment item |
| amount | number <float> Transaction amount |
| account_id | number Checkout ID |
| client_id | number Client ID |
| supplier_id | number Supplier ID |
| master_id | number Employee ID |
| comment | number A comment |
| date | string <date-time> Transaction creation date |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "4815162342",
- "document_id": 22256641,
- "expense": {
- "id": "5",
- "title": "Provision of services"
}, - "date": "2016-04-13T15:34:31+0400",
- "amount": "1000.00",
- "comment": "Comment",
- "master": {
- "id": "1926",
- "title": "Sweeney Todd"
}, - "supplier": {
- "id": "1968",
- "title": "George"
}, - "account": {
- "id": "23182",
- "title": "Cards"
}, - "client": {
- "id": "481516",
- "name": "John Turk",
- "phone": 79876543210
}, - "last_change_date": "2020-02-01T12:00:00+0400",
- "record_id": 308786662,
- "visit_id": 262551993,
- "sold_item_id": 7134634,
- "sold_item_type": "service"
}
], - "meta": [ ]
}| company_id required | number Company ID |
| transaction_id required | number transaction ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
Returns a list of card types that are valid for the given location.
The attributes and their descriptions match those defined in the "Collection of Card Types Available to the Client" method described above.
| company_id required | number Example: 12345 Company ID |
| id | integer <int32> Card type identifier |
| title | string Card type name |
| salon_group_id | integer <int32> ID of the chain where the card type was created |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain |
[- {
- "id": 10992,
- "title": "Cashback",
- "salon_group_id": 145071,
- "salon_group": {
- "id": 145071,
- "title": "Chain 1"
}
}, - {
- "id": 8230,
- "title": "Referral program",
- "salon_group_id": 145071,
- "salon_group": {
- "id": 145071,
- "title": "Chain 1"
}
}
]Returns a list of customer cards with programs that are active in this location
| Attribute | Type | Description |
|---|---|---|
| id | int | Loyalty card ID |
| balance | decimal | Loyalty card balance |
| paid_amount | decimal | Amount "Paid" |
| sold_amount | decimal | Amount "Sold" |
| visits_count | int | Number of visits |
| number | string | Card number |
| type_id | int | Loyalty card type identifier |
| salon_group_id | int | ID of the chain where the card was created |
| type | object | Object that contains the "id" and "title" fields: card type identifier and name |
| salon_group | object | Object that contains the "id" and "title" fields: identifier of the chain where the card type was created and the name of this chain |
| programs | array | Array with information about promotions linked to a loyalty card |
| rules | array | Array with information about the rules configured in the action |
The programs array consists of objects with the following fields:
| Attribute | Type | Description |
|---|---|---|
| id | int | Promotion ID |
| title | string | Action name |
| loyalty_type_id | int | Promotion type ID |
| item_type_id | int | Is cashback accrued from products |
| value_unit_id | int | Bonus field — Discount % or Fixed amount |
| group_id | int | ID of the chain where the action was created |
| loyalty_type | object | Object with information about the action |
The rules array consists of objects with the following fields:
| Attribute | Type | Description |
|---|---|---|
| id | int | Rule ID |
| loyalty_program_id | int | Identifier of the promotion to which the rule is attached |
| loyalty_type_id | int | Promotion type ID |
| value | decimal | Value from which the rule will work |
| phone required | string Customer phone number in the format 380000000000 |
| group_id required | number Chain ID |
| company_id required | number Location ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| id | integer <int32> Loyalty card ID |
| balance | number <float> Loyalty card balance |
| points | integer <int32> |
| paid_amount | number <float> Amount Paid |
| sold_amount | number <float> Amount "Sold" |
| visits_count | integer <int32> Number of visits |
| number | string Card number |
| type_id | integer <int32> Loyalty card type identifier |
| salon_group_id | integer <int32> ID of the chain where the card was created |
object An object that contains the "id" and "title" fields: card type identifier and card type name, respectively | |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain | |
Array of objects An array with information about promotions linked to a loyalty card |
{- "id": 9210520,
- "balance": 100,
- "points": 0,
- "paid_amount": 1000,
- "sold_amount": 1000,
- "visits_count": 1,
- "number": 14507109210520,
- "type_id": 10992,
- "salon_group_id": 145071,
- "type": {
- "id": 10992,
- "title": "5+2",
- "salon_group_id": 145071
}, - "salon_group": {
- "id": 145071,
- "title": "Dough chain1."
}, - "programs": [
- {
- "id": 18005,
- "title": "5+2",
- "value": 0,
- "loyalty_type_id": 13,
- "item_type_id": 3,
- "value_unit_id": 1,
- "group_id": 145071,
- "loyalty_type": {
- "id": 13,
- "title": "Discount for a given number of accumulated services",
- "is_discount": true,
- "is_cashback": false,
- "is_static": false,
- "is_accumulative": false
}, - "rules": [
- {
- "id": 72803,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 20,
- "parameter": 0
}, - {
- "id": 72804,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 10,
- "parameter": 0
}, - {
- "id": 72805,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 100,
- "parameter": 0
}
]
}
]
}Returns a list of customer cards with programs that are active in this location
The attributes in the response to the request completely match the "Get a list of issued cards by phone number" method described above
| client_id required | number Client ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| id | integer <int32> Loyalty card ID |
| balance | number <float> Loyalty card balance |
| points | integer <int32> |
| paid_amount | number <float> Amount Paid |
| sold_amount | number <float> Amount "Sold" |
| visits_count | integer <int32> Number of visits |
| number | string Card number |
| type_id | integer <int32> Loyalty card type identifier |
| salon_group_id | integer <int32> ID of the chain where the card was created |
object An object that contains the "id" and "title" fields: card type identifier and card type name, respectively | |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain | |
Array of objects An array with information about promotions linked to a loyalty card |
{- "id": 9210520,
- "balance": 100,
- "points": 0,
- "paid_amount": 1000,
- "sold_amount": 1000,
- "visits_count": 1,
- "number": 14507109210520,
- "type_id": 10992,
- "salon_group_id": 145071,
- "type": {
- "id": 10992,
- "title": "5+2",
- "salon_group_id": 145071
}, - "salon_group": {
- "id": 145071,
- "title": "Dough chain1."
}, - "programs": [
- {
- "id": 18005,
- "title": "5+2",
- "value": 0,
- "loyalty_type_id": 13,
- "item_type_id": 3,
- "value_unit_id": 1,
- "group_id": 145071,
- "loyalty_type": {
- "id": 13,
- "title": "Discount for a given number of accumulated services",
- "is_discount": true,
- "is_cashback": false,
- "is_static": false,
- "is_accumulative": false
}, - "rules": [
- {
- "id": 72803,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 20,
- "parameter": 0
}, - {
- "id": 72804,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 10,
- "parameter": 0
}, - {
- "id": 72805,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 100,
- "parameter": 0
}
]
}
]
}Returns a list of cards of an authorized user with programs, filtering cards by salon chain / location
| group_id required | number Chain ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| id | integer <int32> Loyalty card ID |
| balance | number <float> Loyalty card balance |
| points | integer <int32> |
| paid_amount | number <float> Amount Paid |
| sold_amount | number <float> Amount "Sold" |
| visits_count | integer <int32> Number of visits |
| number | string Card number |
| type_id | integer <int32> Loyalty card type identifier |
| salon_group_id | integer <int32> ID of the chain where the card was created |
object An object that contains the "id" and "title" fields: card type identifier and card type name, respectively | |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain | |
Array of objects An array with information about promotions linked to a loyalty card |
{- "id": 9210520,
- "balance": 100,
- "points": 0,
- "paid_amount": 1000,
- "sold_amount": 1000,
- "visits_count": 1,
- "number": 14507109210520,
- "type_id": 10992,
- "salon_group_id": 145071,
- "type": {
- "id": 10992,
- "title": "5+2",
- "salon_group_id": 145071
}, - "salon_group": {
- "id": 145071,
- "title": "Dough chain1."
}, - "programs": [
- {
- "id": 18005,
- "title": "5+2",
- "value": 0,
- "loyalty_type_id": 13,
- "item_type_id": 3,
- "value_unit_id": 1,
- "group_id": 145071,
- "loyalty_type": {
- "id": 13,
- "title": "Discount for a given number of accumulated services",
- "is_discount": true,
- "is_cashback": false,
- "is_static": false,
- "is_accumulative": false
}, - "rules": [
- {
- "id": 72803,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 20,
- "parameter": 0
}, - {
- "id": 72804,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 10,
- "parameter": 0
}, - {
- "id": 72805,
- "loyalty_program_id": 18005,
- "loyalty_type_id": 13,
- "value": 100,
- "parameter": 0
}
]
}
]
}| Attribute | Type | Description | |----------------------|--------|----------------- ------------------------------| | loyalty_card_number | number | Loyalty card number | | loyalty_card_type_id | number | Loyalty card type identifier | | phone | number | Customer phone number in the format 70001234567 |
| company_id required | number Location ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| loyalty_card_number | string Loyalty card number |
| loyalty_card_type_id | string Loyalty card type identifier |
| phone | number Customer phone number in the format 70001234567 |
| id | integer <int32> Loyalty card ID |
| balance | number <float> Loyalty card balance |
| points | integer <int32> |
| paid_amount | number <float> Amount Paid |
| sold_amount | number <float> Amount "Sold" |
| visits_count | integer <int32> Number of visits |
| number | string Card number |
| type_id | integer <int32> Loyalty card type identifier |
| salon_group_id | integer <int32> ID of the chain where the card was created |
object An object that contains the "id" and "title" fields: card type identifier and card type name, respectively | |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain | |
Array of objects An array with information about promotions linked to a loyalty card |
{- "loyalty_card_number": 9090909,
- "loyalty_card_type_id": "8230",
- "phone": 79091552422
}{- "id": 9250498,
- "balance": 0,
- "points": 0,
- "paid_amount": 16300,
- "sold_amount": 19320,
- "visits_count": 5,
- "number": "01010101",
- "type_id": 8230,
- "salon_group_id": 145071,
- "type": {
- "id": 8230,
- "title": "cashmesh",
- "salon_group_id": 145071
}, - "salon_group": {
- "id": 145071,
- "title": "Dough chain1."
}, - "programs": [
- {
- "id": 12720,
- "title": "cumulative cache paid",
- "value": 10,
- "loyalty_type_id": 7,
- "item_type_id": 0,
- "value_unit_id": 1,
- "group_id": 145071,
- "loyalty_type": {
- "id": 7,
- "title": "Cumulative cashback (paid)",
- "is_discount": false,
- "is_cashback": true,
- "is_static": false,
- "is_accumulative": true
}, - "rules": [
- {
- "id": 71149,
- "loyalty_program_id": 12720,
- "loyalty_type_id": 7,
- "value": 10,
- "parameter": 100
}
]
}
]
}Manual withdraw/deposit to loyalty card in chain
| chain_id required | number Example: 123 ID of a chain. |
| card_id required | number Loyalty card ID |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| amount required | number Withdraw/deposit amount. Positive for deposit, negative for withdraw. |
| title | string Optional comment |
| success | boolean (Successful response status) Response status. |
object (loyalty_card) Loyalty card | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "amount": 100.5,
- "title": "string"
}{- "success": true,
- "data": {
- "id": 0,
- "balance": 0,
- "points": 0,
- "paid_amount": 0,
- "sold_amount": 0,
- "visits_count": 0,
- "number": "string",
- "type_id": 0,
- "salon_group_id": 0,
- "max_discount_percent": 0,
- "max_discount_amount": 0
}, - "meta": { }
}| chain_id required | integer Chain ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| id | integer <int32> Card type identifier |
| title | string Card type name |
[- {
- "id": 123,
- "title": "Loyalty card type"
}
]Manual withdraw/deposit to loyalty card in company
| company_id required | number Example: 123 ID of a company. |
| card_id required | number Loyalty card ID |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| amount required | number Withdraw/deposit amount. Positive for deposit, negative for withdraw. |
| title | string Optional comment |
| success | boolean (Successful response status) Response status. |
object (loyalty_card) Loyalty card | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "amount": 100.5,
- "title": "string"
}{- "success": true,
- "data": {
- "id": 0,
- "balance": 0,
- "points": 0,
- "paid_amount": 0,
- "sold_amount": 0,
- "visits_count": 0,
- "number": "string",
- "type_id": 0,
- "salon_group_id": 0,
- "max_discount_percent": 0,
- "max_discount_amount": 0
}, - "meta": { }
}Returns a list of card types that are available for issuance to a location client.
| Attribute | Type | Description |
|---|---|---|
| id | int | Card type identifier |
| title | string | Card type name |
| salon_group_id | int | ID of the chain where the card type was created |
| salon_group | object | An object that contains the "id" and "title" fields: identifier of the chain where the card type was created and the name of this chain |
| company_id required | number Example: 12345 Company ID |
| phone required | number Example: 70001234567 Customer phone number |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| id | integer <int32> Card type identifier |
| title | string Card type name |
| salon_group_id | integer <int32> ID of the chain where the card type was created |
object An object that contains the "id" and "title" fields: the identifier of the chain where the card type was created and the name of this chain |
[- {
- "id": 10992,
- "title": "Cashback",
- "salon_group_id": 145071,
- "salon_group": {
- "id": 145071,
- "title": "Chain 1"
}
}, - {
- "id": 8230,
- "title": "Referral program",
- "salon_group_id": 145071,
- "salon_group": {
- "id": 145071,
- "title": "Chain 1"
}
}
]Applying a promotion to a visit, it only makes sense if there is a visit
| company_id required | number Location ID |
| card_id required | number Client card ID |
| program_id required | number ID of the promotion linked to the card |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| record_id required | number Appointment ID |
| visit_id required | number Visit ID |
| payment_transactions | Array of objects Array with information about the financial transactions of the appointment |
Array of objects An array with information about applied loyalty transactions in a visit | |
object An object that holds details about transactions recorded by the POS system | |
Array of objects Array with information about products and services of the appointment |
{- "record_id": 0,
- "visit_id": 0
}{- "payment_transactions": [ ],
- "loyalty_transactions": [
- {
- "id": 22985556,
- "status_id": 1,
- "amount": 20,
- "type_id": 1,
- "program_id": 20802,
- "card_id": 9223622,
- "salon_group_id": 145071,
- "item_id": 5048384,
- "item_type_id": 7,
- "item_record_id": 0,
- "goods_transaction_id": 96063258,
- "is_discount": true,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 1,
- "title": "Promotion Discount"
}
}
], - "kkm_transaction_details_container": {
- "last_operation_type": 1,
- "transactions": [ ]
}, - "items": [
- {
- "id": 96063258,
- "item_id": 5048384,
- "item_type_id": 7,
- "record_id": 0,
- "item_title": "test two",
- "amount": 1,
- "first_cost": 20,
- "manual_cost": 20,
- "discount": 0,
- "cost": 20,
- "master_id": 548096,
- "good_id": 5048384,
- "service_id": 0,
- "event_id": 0,
- "is_service": false,
- "is_event": false,
- "is_good": true
}, - {
- "id": 0,
- "item_id": 2560779,
- "item_type_id": 1,
- "record_id": 140878948,
- "item_title": "Deep bikini",
- "amount": 1,
- "first_cost": 3000,
- "manual_cost": 3000,
- "discount": 0,
- "cost": 3000,
- "master_id": 140878948,
- "good_id": 0,
- "service_id": 2560779,
- "event_id": 0,
- "is_service": true,
- "is_event": false,
- "is_good": false
}
]
}Cancellation of the promotion applied to the visit.
| company_id required | number Location ID |
| card_id required | number Client card ID |
| program_id required | number ID of the promotion linked to the card |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| record_id required | number Appointment ID |
| visit_id required | number Visit ID |
| payment_transactions | Array of objects Array with information about the financial transactions of the appointment |
| loyalty_transactions | Array of objects An array with information about applied loyalty transactions in a visit |
object An object that holds details about transactions recorded by the POS system | |
Array of objects Array with information about products and services of the appointment |
{- "payment_transactions": [ ],
- "loyalty_transactions": [ ],
- "kkm_transaction_details_container": {
- "last_operation_type": 1,
- "transactions": [ ]
}, - "items": [
- {
- "id": 96063258,
- "item_id": 5048384,
- "item_type_id": 7,
- "record_id": 0,
- "item_title": "test two",
- "amount": 1,
- "first_cost": 20,
- "manual_cost": 20,
- "discount": 0,
- "cost": 20,
- "master_id": 548096,
- "good_id": 5048384,
- "service_id": 0,
- "event_id": 0,
- "is_service": false,
- "is_event": false,
- "is_good": true
}, - {
- "id": 0,
- "item_id": 2560779,
- "item_type_id": 1,
- "record_id": 140878948,
- "item_title": "Deep bikini",
- "amount": 1,
- "first_cost": 3000,
- "manual_cost": 3000,
- "discount": 0,
- "cost": 3000,
- "master_id": 140878948,
- "good_id": 0,
- "service_id": 2560779,
- "event_id": 0,
- "is_service": true,
- "is_event": false,
- "is_good": false
}
]
}The amount deducted will not exceed the available bonus balance. If the value is set to 0, no write-off transaction will occur
| company_id required | number Location ID |
| card_id required | number Client card ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| record_id required | number Appointment ID |
| visit_id required | number Visit ID |
| amount required | number Number of points to redeem |
| payment_transactions | Array of objects Array with information about the financial transactions of the appointment |
Array of objects An array with information about applied loyalty transactions in a visit | |
object An object that holds details about transactions recorded by the POS system | |
Array of objects Array with information about products and services of the appointment |
{- "payment_transactions": [ ],
- "loyalty_transactions": [
- {
- "id": 22985556,
- "status_id": 1,
- "amount": 20,
- "type_id": 1,
- "program_id": 20802,
- "card_id": 9223622,
- "salon_group_id": 145071,
- "item_id": 5048384,
- "item_type_id": 7,
- "item_record_id": 0,
- "goods_transaction_id": 96063258,
- "is_discount": true,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 1,
- "title": "Promotion Discount"
}
}
], - "kkm_transaction_details_container": {
- "last_operation_type": 1,
- "transactions": [ ]
}, - "items": [
- {
- "id": 96063258,
- "item_id": 5048384,
- "item_type_id": 7,
- "record_id": 0,
- "item_title": "test two",
- "amount": 1,
- "first_cost": 20,
- "manual_cost": 20,
- "discount": 0,
- "cost": 20,
- "master_id": 548096,
- "good_id": 5048384,
- "service_id": 0,
- "event_id": 0,
- "is_service": false,
- "is_event": false,
- "is_good": true
}, - {
- "id": 0,
- "item_id": 2560779,
- "item_type_id": 1,
- "record_id": 140878948,
- "item_title": "Deep bikini",
- "amount": 1,
- "first_cost": 3000,
- "manual_cost": 3000,
- "discount": 0,
- "cost": 3000,
- "master_id": 140878948,
- "good_id": 0,
- "service_id": 2560779,
- "event_id": 0,
- "is_service": true,
- "is_event": false,
- "is_good": false
}
]
}Cancellation of write-off from the loyalty card.
| company_id required | number Location ID |
| card_id required | number Client card ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| record_id required | number Appointment ID |
| visit_id required | number Visit ID |
| payment_transactions | Array of objects Array with information about the financial transactions of the appointment |
| loyalty_transactions | Array of objects An array with information about applied loyalty transactions in a visit |
object An object that holds details about transactions recorded by the POS system | |
Array of objects Array with information about products and services of the appointment |
{- "payment_transactions": [ ],
- "loyalty_transactions": [ ],
- "kkm_transaction_details_container": {
- "last_operation_type": 1,
- "transactions": [ ]
}, - "items": [
- {
- "id": 96063258,
- "item_id": 5048384,
- "item_type_id": 7,
- "record_id": 0,
- "item_title": "test two",
- "amount": 1,
- "first_cost": 20,
- "manual_cost": 20,
- "discount": 0,
- "cost": 20,
- "master_id": 548096,
- "good_id": 5048384,
- "service_id": 0,
- "event_id": 0,
- "is_service": false,
- "is_event": false,
- "is_good": true
}, - {
- "id": 0,
- "item_id": 2560779,
- "item_type_id": 1,
- "record_id": 140878948,
- "item_title": "Deep bikini",
- "amount": 1,
- "first_cost": 3000,
- "manual_cost": 3000,
- "discount": 0,
- "cost": 3000,
- "master_id": 140878948,
- "good_id": 0,
- "service_id": 2560779,
- "event_id": 0,
- "is_service": true,
- "is_event": false,
- "is_good": false
}
]
}Applying a referral program to a visit
| company_id required | number Location ID |
| group_id required | number ID of the chain where the referral program is configured |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| record_id required | number Appointment ID |
| visit_id required | number Visit ID |
| referrer_phone required | number Phone number of the inviter |
| payment_transactions | Array of objects Array with information about the financial transactions of the appointment |
Array of objects An array with information about applied loyalty transactions in a visit | |
object An object that holds details about transactions recorded by the POS system | |
Array of objects Array with information about products and services of the appointment |
{- "payment_transactions": [ ],
- "loyalty_transactions": [
- {
- "id": 22989715,
- "status_id": 1,
- "amount": 100,
- "type_id": 1,
- "program_id": 12705,
- "card_id": 0,
- "salon_group_id": 145071,
- "item_id": 5048371,
- "item_type_id": 7,
- "item_record_id": 0,
- "goods_transaction_id": 96082477,
- "is_discount": true,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 1,
- "title": "Promotion discount"
}
}
], - "kkm_transaction_details_container": {
- "last_operation_type": 1,
- "transactions": [ ]
}, - "items": [
- {
- "id": 96082477,
- "item_id": 5048371,
- "item_type_id": 7,
- "record_id": 0,
- "item_title": "test",
- "amount": 1,
- "first_cost": 1000,
- "manual_cost": 1000,
- "discount": 0,
- "cost": 1000,
- "master_id": 548042,
- "good_id": 5048371,
- "service_id": 0,
- "event_id": 0,
- "is_service": false,
- "is_event": false,
- "is_good": true
}
]
}List of transactions for loyalty promotions for this visit
| visit_id required | number Visit ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| id | integer <int32> Loyalty transaction ID |
| status_id | integer <int32> Status ID |
| amount | number <float> Transaction amount |
| type_id | integer <int32> Transaction type identifier |
| program_id | integer <int32> Loyalty program ID |
| card_id | integer <int32> Loyalty card ID |
| salon_group_id | integer <int32> ID of the chain to which the loyalty belongs |
| item_id | integer <int32> Identifier of the product/service to which the promotion applies |
| item_type_id | integer <int32> Operation type identifier |
| item_record_id | integer <int32> Identifier of the appointment to which the service/product belongs |
| goods_transaction_id | integer <int32> Commodity transaction ID |
| is_discount | boolean Is a discount |
| is_loyalty_withdraw | boolean Is the application of loyalty canceled |
object Loyalty type | |
object Promotion Information |
[- {
- "id": 22989715,
- "status_id": 1,
- "amount": 100,
- "type_id": 1,
- "program_id": 12705,
- "card_id": 0,
- "salon_group_id": 145071,
- "item_id": 5048371,
- "item_type_id": 7,
- "item_record_id": 0,
- "goods_transaction_id": 96082477,
- "is_discount": true,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 1,
- "title": "Promotion discount"
}, - "program": {
- "id": 12705,
- "title": "invited",
- "value": 10,
- "loyalty_type_id": 1,
- "item_type_id": 0,
- "value_unit_id": 1,
- "group_id": 145071
}
}, - {
- "id": 22994127,
- "status_id": 1,
- "amount": 100,
- "type_id": 4,
- "program_id": 19044,
- "card_id": 9234863,
- "salon_group_id": 145071,
- "item_id": 0,
- "item_type_id": 0,
- "item_record_id": 0,
- "goods_transaction_id": 0,
- "is_discount": false,
- "is_loyalty_withdraw": false,
- "type": {
- "id": 4,
- "title": "Referral program accrual"
}, - "program": {
- "id": 19044,
- "title": "inviter 2",
- "value": 100,
- "loyalty_type_id": 6,
- "item_type_id": 0,
- "value_unit_id": 2,
- "group_id": 145071
}
}
]| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "active": 0,
- "salon": 1,
- "service_category": 0,
- "service": 1,
- "good": 1,
- "master": 1,
- "client": 1,
- "record": 1,
- "goods_operations_sale": 1,
- "goods_operations_receipt": 1,
- "goods_operations_consumable": 1,
- "goods_operations_stolen": 1,
- "goods_operations_move": 1,
- "finances_operation": 1
}, - "meta": [ ]
}| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| urls required | Array of arrays List of addresses to send notifications to |
| active required | number 1 - notifications are active, 0 - not active |
| salon | number 1 - send events by company entity, 0 - do not send |
| service_category | number 1 - send events by service category entity, 0 - do not send |
| service | number 1 - send events by service entity, 0 - do not send |
| good | number 1 - send events by product entity, 0 - don't send |
| master | number 1 - send events by employee entity, 0 - don't send |
| client | number 1 - send events by client entity, 0 - don't send |
| record | number 1 - send events by record entity, 0 - do not send |
| goods_operations_sale | number 1 - send events by the item sale entity, 0 - do not send |
| goods_operations_receipt | number 1 - send events by the entity arrival of goods, 0 - do not send |
| goods_operations_consumable | number 1 - send events by the consumable write-off entity, 0 - do not send |
| goods_operations_stolen | number 1 - send events by the item write-off entity, 0 - do not send |
| goods_operations_move | number 1 - send events by the item movement entity, 0 - no send |
| finances_operation | number 1 - send events by entity financial operation, 0 - no send |
| self_sending | number 1 - The webhook creator will receive events triggered by their own actions, 0 - The webhook creator will not receive events triggered by their own actions |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "active": 0,
- "salon": 1,
- "service_category": 0,
- "service": 1,
- "good": 1,
- "master": 1,
- "client": 1,
- "record": 1,
- "goods_operations_sale": 1,
- "goods_operations_receipt": 1,
- "goods_operations_consumable": 1,
- "goods_operations_stolen": 1,
- "goods_operations_move": 1,
- "finances_operation": 1,
- "self_sending": 0
}{- "success": true,
- "data": {
- "active": 0,
- "salon": 1,
- "service_category": 0,
- "service": 1,
- "master": 1,
- "client": 1,
- "record": 1,
- "goods_operations_sale": 1,
- "goods_operations_receipt": 1,
- "goods_operations_consumable": 1,
- "goods_operations_stolen": 1,
- "goods_operations_move": 1,
- "finances_operation": 1
}, - "meta": [ ]
}| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of business types found) |
{- "success": true,
- "data": [
- {
- "id": 10,
- "title": "Domestic services",
- "types": [
- {
- "id": 31,
- "title": "Studio",
- "business_group_id": 10
}
]
}, - {
- "id": 1,
- "title": "beauty",
- "types": [
- {
- "id": 1,
- "title": "Beauty Salons",
- "business_group_id": 1
}, - {
- "id": 25,
- "title": "Spa",
- "business_group_id": 1
}
]
}
], - "meta": {
- "count": 10
}
}| company_id required | number Company ID |
| entity required | number Category object (0 - general tags, 1 - customer tags, 2 - appointment tags) |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| id | number Category ID |
| salon_id | number Location ID |
| title | string name of category |
| color | string Label color in #RRGGBB format |
| icon | string Icon name |
| entity | number Category object (1 - category for customers, 2 - category for appointments) |
| deleted | number Delete mark |
| not_editable | number Whether category changes are allowed (1 - allowed, 0 - not allowed) |
[- {
- "id": "241625",
- "salon_id": "68570",
- "title": "The employee is important",
- "color": "#ff2828",
- "icon": "lock",
- "entity": "2",
- "deleted": "0",
- "not_editable": "1"
}, - {
- "id": "241626",
- "salon_id": "68570",
- "title": "The employee is not important",
- "color": "#009800",
- "icon": "unlock",
- "entity": "2",
- "deleted": "0",
- "not_editable": "1"
}
]| company_id required | number Company ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| title | string name of category |
| color | string Label color in #RRGGBB format |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
| success | boolean Execution success status (false) |
| data | string Contains null |
object Metadata (contains an error message) |
| success | boolean Execution success status (false) |
| data | string Contains null |
object Contains an array with possible error messages |
| success | boolean Execution success status (false) |
| data | string Contains null |
object Contains an array of possible error messages |
{- "success": true,
- "data": {
- "title": "test",
- "salon_id": 68570,
- "color": "#00ff11",
- "entity": 1,
- "id": "3599560"
}, - "meta": [ ]
}| company_id required | number Company ID |
| title required | string name of category |
| color required | string Label color in #RRGGBB format |
| entity | number Category object (0 - general tags, 1 - customer tags, 2 - appointment tags) |
| icon | string Icon name |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "title": "test",
- "salon_id": 68570,
- "color": "#00ff11",
- "entity": 1,
- "id": "3599560"
}, - "meta": [ ]
}| company_id required | number Company ID |
| label_id required | number Tag ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| title | string name of category |
| color | string Label color in #RRGGBB format |
| entity | number Category object (1 - category for customers, 2 - category for appointments) |
| icon | string Icon name |
{- "title": "Testway2",
- "color": "#aa11ff",
- "entity": 2,
- "icon": "Test"
}{- "success": true,
- "meta": {
- "message": "Accepted"
}
}| company_id required | number Company ID |
| label_id required | number Tag ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "meta": {
- "message": "Accepted"
}
}| company_id required | number Location ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array with data objects | |
object Metadata (contains the page number and the number of categories found) |
| success | boolean Execution success status (false) |
| data | string Contains null |
object Contains an array with possible error messages |
| success | boolean Execution success status (false) |
| data | string Contains null |
object Contains an array of possible error messages |
{- "success": true,
- "data": [
- {
- "id": 3,
- "salon_id": 4564,
- "title": "Regular customer",
- "color": "#1f1038",
- "icon": "tag",
- "entity": 1,
- "deleted": 1,
- "not_editable": 0
}
], - "meta": {
- "page": 1,
- "total_count": 25
}
}You can retrieve a list of products and product categories by providing the location ID. Use the search_term parameter to filter:
Limit the number of results using the max_count parameter.
If search_term is not provided, the response will return a list of root categories for the specified location. In this case, the max_count parameter is ignored. If search_term is provided, the system will first search among categories. If fewer than max_count results are found, the search will continue among products to fill the remaining count.
The result is returned as an array of products tree elements.
Product tree element has the following structure:
| Field | Type | Description | | -------------| ------- | -------------------------------------------------- ----------------------------------------- | | parent_id | number | Parent element ID (0 for root elements) | | item_id | number | Item ID (0 if item is a category) | | category_id | number | Product category ID (0 if the item is a product) | | title | string | Product name or product category | | is_chain | boolean | Is the element chain-bound? true - the element is connected to the chain, false - not connected | | is_category | boolean | Is the element a category? true - category, false - product | | is_item | boolean | Is the item a product? true - product, false - category |
| company_id required | number Company ID |
| search_term | string Search query by name, article number or barcode |
| max_count | number The number of output lines per page. Maximum 100 |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array with data objects | |
object Metadata (contains the number of categories found) |
{- "success": true,
- "data": [
- {
- "parent_id": 0,
- "item_id": 0,
- "category_id": 123,
- "title": "Root category 1",
- "is_chain": true,
- "is_category": true,
- "is_item": false
}, - {
- "parent_id": 0,
- "item_id": 0,
- "category_id": 456,
- "title": "Root category 2",
- "is_chain": true,
- "is_category": true,
- "is_item": false
}
], - "meta": {
- "count": 2
}
}##№ Composition of the product category
Information on a product category and its descendants can be obtained by making a request specifying the location ID and product category.
Pagination is supported, specified by the page and count parameters.
Composition of a product category has the following structure:
| Field | Type | Description |
|---|---|---|
| parent_id | number | Parent element ID (0 for root elements) |
| item_id | number | Item ID (always 0) |
| category_id | number | Product category ID |
| title | string | Product category name |
| is_chain | boolean | Is the element chain-bound? true - the element is connected to the chain, false - not connected |
| is_category | boolean | Is the element a category? always true |
| is_item | boolean | Is the item a product? always false |
| children | array of objects (Product tree element) | Child elements of a product category |
| children_count | number | Total number of child products and categories (no recursion) |
| company_id required | number Company ID |
| category_id required | number Product Category ID |
| page | number Page number |
| count | number The number of products displayed on the page. Maximum 1000 |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data |
{- "success": true,
- "data": {
- "parent_id": 0,
- "item_id": 0,
- "category_id": 123,
- "title": "Root category 1",
- "is_chain": false,
- "is_category": true,
- "is_item": false,
- "children": [
- {
- "parent_id": 123,
- "item_id": 0,
- "category_id": 456,
- "title": "Child category",
- "is_chain": false,
- "is_category": true,
- "is_item": false
}, - {
- "parent_id": 123,
- "item_id": 789,
- "category_id": 0,
- "title": "Child product",
- "is_chain": false,
- "is_category": false,
- "is_item": true
}
], - "children_count": 2
}
}| company_id required | number Company ID |
| parent_category_id required | number ID of the parent product category. Default 0 - top-level categories are displayed (optional) |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "1",
- "title": "Category 1"
}, - {
- "id": "2",
- "title": "Category 2"
}
], - "meta": [ ]
}| company_id required | number Company ID |
| id | number Product category ID (you can specify several additional parameters &ids[]={id} |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "1",
- "title": "Category 1"
}, - {
- "id": "2",
- "title": "Category 2"
}
], - "meta": [ ]
}| company_id required | number Company ID |
| parent_category_id required | number ID of the parent product category |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 25214,
- "title": "Doughter 1",
- "parent_category_id": 24843
}, - {
- "id": 25213,
- "title": "Root 1"
}, - {
- "id": 25219,
- "title": "Root 2"
}
], - "meta": {
- "count": 94
}
}The method allows you to create a product category.
| company_id required | number Location ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| title required | string Product category name |
| parent_category_id | integer <int32> Parent category ID (optional, but can be 0 or null if you don't need to specify the parent category) |
| article | string vendor code |
| comment | string A comment |
| success | boolean Execution success status |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "title": "Manicure",
- "parent_category_id": 123456,
- "article": "123article",
- "comment": "Category of products for manicure"
}{- "success": true,
- "data": {
- "id": 123456,
- "title": "Manicure",
- "parent_category_id": 123457
}, - "meta": [ ]
}The method allows you to edit the product category
| company_id required | number Location ID |
| category_id required | number Product category ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| title required | string Product category name |
| parent_category_id | integer <int32> Parent category ID (optional, but can be 0 or null if you don't need to specify the parent category) |
| article | string vendor code |
| comment | string A comment |
| success | boolean Execution success status |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "title": "Manicure",
- "parent_category_id": 123456,
- "article": "123article",
- "comment": "Category of products for manicure"
}{- "success": true,
- "data": {
- "id": 123456,
- "title": "Manicure",
- "parent_category_id": 123457
}, - "meta": [ ]
}The method allows you to delete a product category
| company_id required | number Location ID |
| category_id required | number Product category ID |
| Accept required | string e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| company_id required | number Location ID |
| search | string Example: search='test' parameter for searching by the name of those lists |
| page | number Example: page=1 page number |
| count | number Example: count=20 number of those lists per page |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of data objects | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "1",
- "title": "Tech map 1",
- "technological_card_items": [
- {
- "id": 3,
- "technological_card_id": 1,
- "storage_id": 4234,
- "good_id": 34234,
- "amount": 12,
- "unit": "l",
- "price": 0.0742,
- "title": "Consumable 3"
}
]
}, - {
- "id": "2",
- "title": "Tech map 2",
- "technological_card_items": [
- {
- "id": 4,
- "technological_card_id": 2,
- "storage_id": 4234,
- "good_id": 34235,
- "amount": 10,
- "unit": "l",
- "price": 0.02412,
- "title": "Consumable 4"
}
]
}
], - "meta": [ ]
}| company_id required | number Location ID |
| staffId required | number Employee ID |
| serviceId required | number Service ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of data objects | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": "1",
- "title": "Tech map 1",
- "technological_card_items": [
- {
- "id": 3,
- "technological_card_id": 1,
- "storage_id": 4234,
- "good_id": 34234,
- "amount": 12,
- "unit": "l",
- "price": 0.0742,
- "title": "Consumable 3"
}
]
}, - "meta": [ ]
}| company_id required | number Location ID |
| record_id required | number Appointment ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "service_id": 21558,
- "record_id": 1233243,
- "technological_cards": [
- {
- "id": 36069,
- "title": "Tech map",
- "technological_card_items": [
- {
- "id": 208568,
- "technological_card_id": 36069,
- "storage_id": 91303,
- "good_id": 6858783,
- "amount": 10,
- "price": 1000,
- "good": {
- "id": 6858783,
- "title": "Product",
- "unit": "G"
}
}
]
}
], - "consumables": [
- {
- "goods_transaction_id": 2180771,
- "record_id": 121793129,
- "service_id": 695486,
- "storage_id": 91303,
- "good_id": 6858783,
- "price": 1000,
- "amount": 10,
- "good": {
- "id": 6858783,
- "title": "Product",
- "unit": "G"
}
}
]
}
], - "meta": [ ]
}| company_id required | number Location ID |
| record_id required | number Appointment ID |
| service_id required | number Service ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| delete_consumables | number Whether to remove consumables along with deleting bill of materials. Default 0 |
| success | boolean Execution success status (true) |
Array of objects Array with object | |
object Metadata (empty array0) |
{- "success": true,
- "data": [
- {
- "service_id": 7224099,
- "record_id": 310013764,
- "technological_cards": [ ],
- "consumables": [ ]
}
], - "meta": {
- "count": 1
}
}| company_id required | number Location ID |
| record_id required | number Appointment ID |
| service_id required | number Service ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| delete_consumables | number Whether to remove consumables along with deleting bill of materials. Default 0 |
| success | boolean Execution success status (true) |
Array of objects Array with object | |
object Metadata (empty array0) |
{- "success": true,
- "data": [
- {
- "service_id": 7224099,
- "record_id": 310013764,
- "technological_cards": [ ],
- "consumables": [ ]
}
], - "meta": {
- "count": 1
}
}| company_id required | number Location ID |
| record_id required | number Appointment ID |
| service_id required | number Service ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
Array of objects List of consumables |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "consumables": [
- {
- "goods_transaction_id": 0,
- "record_id": 0,
- "service_id": 0,
- "storage_id": 0,
- "good_id": 0,
- "price": 0,
- "amount": 0
}
]
}{- "success": true,
- "data": [
- {
- "service_id": 21558,
- "record_id": 1233243,
- "technological_cards": [
- {
- "id": 36069,
- "title": "Tech map",
- "technological_card_items": [
- {
- "id": 208568,
- "technological_card_id": 36069,
- "storage_id": 91303,
- "good_id": 6858783,
- "amount": 10,
- "price": 1000,
- "good": {
- "id": 6858783,
- "title": "Product",
- "unit": "G"
}
}
]
}
], - "consumables": [
- {
- "goods_transaction_id": 2180771,
- "record_id": 121793129,
- "service_id": 695486,
- "storage_id": 91303,
- "good_id": 6858783,
- "price": 1000,
- "amount": 10,
- "good": {
- "id": 6858783,
- "title": "Product",
- "unit": "G"
}
}
]
}
], - "meta": [ ]
}| company_id required | number Company ID |
| page | number Example: page=1 page number |
| count | number Example: count=20 number of transactions per page |
| start_date | string Example: start_date='' period start date |
| end_date | string Example: end_date='' period end date |
| document_id | string Document ID |
| changed_after | string Filtering product transactions modified/created since a specific date and time |
| changed_before | string Filtering product transactions modified/created before a specific date and time |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 123456789,
- "document_id": 22256643,
- "type_id": "987654321",
- "type": "Something",
- "good": {
- "id": "111222333",
- "title": "Something"
}, - "storage": {
- "id": "333222111",
- "title": "Storage 1"
}, - "unit": {
- "id": "333222111",
- "title": "milliliter"
}, - "operation_unit_type": 1,
- "create_date": "2012-12-21T19:08:00+0400",
- "last_change_date": "2020-02-01T12:00:00+0400",
- "cost_per_unit": "1.07",
- "cost": "0.00",
- "discount": "10.00",
- "master": {
- "id": "112233445",
- "title": "James Smith"
}, - "supplier": {
- "id": "11112222",
- "title": "Best Supplier Ever"
}, - "record_id": 1,
- "service": {
- "id": "1234321",
- "title": "Service 4"
}, - "clients": {
- "id": "4321234",
- "name": "George Smith",
- "phone": 79876543210
}
}
], - "meta": [ ]
}| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| document_id required | number <float> Document ID |
| good_id required | number Item ID |
| amount required | number Quantity |
| cost_per_unit required | number <float> Unit cost |
| discount required | number Discount in % |
| cost required | number <float> Total transaction amount |
| operation_unit_type required | number unit type: 1 - for sale, 2 - for write-off |
| master_id | number ID of the employee who sold the product |
| client_id | number ID of the customer who bought the product |
| supplier_id | number Vendor ID |
| comment | string A comment |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "document_id": 22254960,
- "good_id": 232674,
- "amount": 1,
- "cost_per_unit": 100,
- "discount": 10,
- "cost": 90,
- "operation_unit_type": 1,
- "master_id": 26781,
- "client_id": 0,
- "supplier_id": 0,
- "comment": "Transaction comment"
}{- "success": true,
- "data": {
- "id": 3428010,
- "document_id": 22254960,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "company_id": 4564,
- "good_id": 232674,
- "amount": -1,
- "cost_per_unit": 100,
- "discount": 10,
- "cost": 90,
- "unit_id": 1,
- "storage_id": 36539,
- "supplier_id": 0,
- "client_id": 0,
- "master_id": 26781,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "last_change_date": "2020-02-01T12:00:00+0400",
- "comment": "Transaction comment",
- "deleted": false,
- "good": {
- "id": 232674,
- "title": "Edition De Luxe"
}, - "storage": {
- "id": 36539,
- "title": "Products"
}, - "supplier": [ ],
- "client": [ ],
- "master": {
- "id": "26781",
- "name": "Angelina Jolie"
}, - "unit": {
- "id": 1,
- "title": "Thing"
}
}, - "meta": [ ]
}| company_id required | number Company ID |
| transaction_id required | number transaction ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 3428010,
- "document_id": 22254960,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "company_id": 4564,
- "good_id": 232674,
- "amount": -1,
- "cost_per_unit": 100,
- "discount": 10,
- "cost": 90,
- "unit_id": 1,
- "storage_id": 36539,
- "supplier_id": 0,
- "client_id": 0,
- "master_id": 26781,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "Transaction comment",
- "deleted": false,
- "good": {
- "id": 232674,
- "title": "Edition De Luxe",
- "unit": "PC.",
- "value": "delete yy",
- "label": "delete yy",
- "article": "",
- "category": "goose category",
- "category_id": 303603,
- "salon_id": 91372,
- "good_id": 15086312,
- "cost": 500,
- "unit_id": 216760,
- "unit_short_title": "PC",
- "service_unit_id": 216760,
- "service_unit_short_title": "PC",
- "actual_cost": 0,
- "unit_actual_cost": 0,
- "unit_actual_cost_format": "0 USD",
- "unit_equals": 1,
- "barcode": "",
- "loyalty_abonement_type_id": 0,
- "loyalty_certificate_type_id": 0,
- "loyalty_allow_empty_code": 1,
- "actual_amounts": [ ],
- "last_change_date": "2021-03-05T18:21:34+0400"
}, - "storage": {
- "id": 36539,
- "title": "Products"
}, - "sale_unit": null,
- "service_unit": null,
- "supplier": [ ],
- "client": [ ],
- "master": {
- "id": "26781",
- "name": "Angelina Jolie"
}, - "unit": {
- "id": 1,
- "title": "Thing",
- "short_title": "PC."
}
}, - "meta": [ ]
}| transaction_id required | number transaction ID |
| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| document_id required | number <float> Document ID |
| good_id required | number Item ID |
| amount required | number Quantity |
| cost_per_unit required | number <float> Unit cost |
| discount required | number Discount in % |
| cost required | number <float> Total transaction amount |
| operation_unit_type required | number unit type: 1 - for sale, 2 - for write-off |
| master_id | number ID of the employee who sold the product |
| client_id | number ID of the customer who bought the product |
| supplier_id | number Vendor ID |
| comment | string A comment |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 3428010,
- "document_id": 22254960,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "company_id": 4564,
- "good_id": 232674,
- "amount": -1,
- "cost_per_unit": 100,
- "discount": 10,
- "cost": 90,
- "unit_id": 1,
- "operation_unit_type": 1,
- "storage_id": 36539,
- "supplier_id": 0,
- "client_id": 0,
- "master_id": 26781,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "last_change_date": "2020-02-01T12:00:00+0400",
- "comment": "Updated transaction comment",
- "deleted": false,
- "good": {
- "id": 232674,
- "title": "Edition De Luxe"
}, - "storage": {
- "id": 36539,
- "title": "Products"
}, - "supplier": [ ],
- "client": [ ],
- "master": {
- "id": "26781",
- "name": "Angelina Jolie"
}, - "unit": {
- "id": 1,
- "title": "Thing"
}
}, - "meta": [ ]
}| company_id required | number Company ID |
| transaction_id required | number transaction ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
An inventory operation is created by submitting a document along with multiple product transactions in a single API request. If a payment type is specified, the corresponding financial transactions will be generated automatically.
| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| type_id required | number Document type (sale 1, receipt 3, write-off 4, transfer 5) |
| comment | string A comment |
| create_date required | string <date-time> Document creation date |
| master_id | number Employee ID |
| storage_id required | number Inventory ID |
| goods_transactions required | Array of objects An array of objects containing transaction parameters, similar to a request to create a product transaction |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "document": {
- "id": 22255506,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "storage_id": 91271,
- "user_id": 999290,
- "company_id": 4564,
- "number": 1254,
- "comment": "test document comment",
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "storage": {
- "id": 91271,
- "title": "Secret place"
}, - "company": {
- "id": 4564,
- "title": "Business example",
- "country_id": 1,
- "city_id": 2,
- "timezone": 3,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": "",
- "phones": [ ],
- "site": "www.example.com"
}, - "user": {
- "id": "999290",
- "name": "User name",
- "phone": "+1-315-555-0175"
}
}, - "transactions": [
- {
- "id": 3428012,
- "document_id": 22255506,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "company_id": 4564,
- "good_id": 232674,
- "amount": -1,
- "cost_per_unit": 100,
- "discount": 10,
- "cost": 90,
- "unit_id": 1,
- "storage_id": 91271,
- "supplier_id": 0,
- "client_id": 0,
- "master_id": 0,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "test transaction comment",
- "deleted": false,
- "good": {
- "id": 232674,
- "title": "Edition De Luxe"
}, - "storage": {
- "id": 91271,
- "title": "Secret place"
}, - "supplier": [ ],
- "client": [ ],
- "master": [ ],
- "unit": {
- "id": 1,
- "title": "Thing"
}
}
]
}, - "meta": [ ]
}| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| type_id required | number Document type (sale 1, receipt 3, write-off 7) |
| comment | string A comment |
| storage_id required | number Inventory ID |
| create_date required | string <date-time> Date of the inventory transaction |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "type_id": 1,
- "comment": "Document comment",
- "storage_id": 36539,
- "create_date": "2025-09-21T23:00:00.000+03:00"
}{- "success": true,
- "data": {
- "id": 22255503,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "storage_id": 36539,
- "user_id": 999290,
- "company_id": 4564,
- "number": 1251,
- "comment": "Document comment",
- "create_date": "2017-04-24 20:00:00",
- "storage": {
- "id": 36539,
- "title": "Products"
}, - "company": {
- "id": 4564,
- "title": "Business example",
- "country_id": 1,
- "city_id": 2,
- "timezone": 3,
- "address": "New York, 787 Jackson Drive",
- "ccoordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": "",
- "phones": [ ],
- "site": "www.example.com"
}, - "user": {
- "id": "999290",
- "name": "User name",
- "phone": "+1-315-555-0175"
}
}, - "meta": [ ]
}| company_id required | number Company ID |
| document_id required | number Document ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 22255503,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "storage_id": 36539,
- "user_id": 999290,
- "company_id": 4564,
- "number": 1251,
- "comment": "Document comment",
- "create_date": "2017-04-24 20:00:00",
- "storage": {
- "id": 36539,
- "title": "Products"
}, - "company": {
- "id": 4564,
- "title": "Business example",
- "country_id": 1,
- "city_id": 2,
- "timezone": 3,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": "",
- "phones": [ ],
- "site": "www.example.com"
}, - "user": {
- "id": "999290",
- "name": "User name",
- "phone": "+1-315-555-0175"
}
}, - "meta": [ ]
}| company_id required | number Company ID |
| document_id required | number Document ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| type_id required | number Document type (sale 1, receipt 3, write-off 7) |
| comment | string A comment |
| storage_id required | number Inventory ID |
| create_date required | string <date-time> Date of the inventory transaction |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "id": 22255503,
- "type_id": 1,
- "type": {
- "id": 1,
- "title": "Sale of goods"
}, - "storage_id": 36539,
- "user_id": 999290,
- "company_id": 4564,
- "number": 1251,
- "comment": "Updated document comment",
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "storage": {
- "id": 36539,
- "title": "Products"
}, - "company": {
- "id": 4564,
- "title": "Business example",
- "country_id": 1,
- "city_id": 2,
- "timezone": 3,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": "",
- "phones": [ ],
- "site": "www.example.com"
}, - "user": {
- "id": "999290",
- "name": "User name",
- "phone": "+1-315-555-0175"
}
}, - "meta": [ ]
}| company_id required | number Company ID |
| document_id required | number Document ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| document_id required | number Document ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 9053737,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 2640,
- "expense_id": 2640,
- "account_id": 35501,
- "amount": 434,
- "client_id": 4240788,
- "master_id": 0,
- "supplier_id": 0,
- "comment": "Transaction comment",
- "item_id": 0,
- "target_type_id": 0,
- "record_id": 0,
- "expense": {
- "id": 2640,
- "title": "Provision of corporate services"
}, - "account": {
- "id": 35501,
- "title": "Cash register",
- "type_id": 0,
- "type": 0,
- "comment": "",
- "company_id": 4564
}, - "client": {
- "id": "4240788",
- "name": "Client",
- "phone": "+1-315-555-0175"
}, - "master": [ ],
- "supplier": [ ]
}, - {
- "id": 9053738,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 2640,
- "expense_id": 2640,
- "account_id": 35501,
- "amount": 434,
- "client_id": 4240788,
- "master_id": 0,
- "supplier_id": 0,
- "comment": "Transaction comment",
- "item_id": 0,
- "target_type_id": 0,
- "record_id": 0,
- "expense": {
- "id": 2640,
- "title": "Provision of corporate services"
}, - "account": {
- "id": 35501,
- "title": "Cash register",
- "type_id": 0,
- "type": 0,
- "comment": "",
- "company_id": 4564
}, - "client": {
- "id": "4240788",
- "name": "Client",
- "phone": "+1-315-555-0175"
}, - "master": [ ],
- "supplier": [ ]
}
], - "meta": [ ]
}| document_id required | number Document ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (number of transactions found) |
{- "success": true,
- "data": [
- {
- "id": 3728232,
- "document_id": 22256643,
- "type_id": 1,
- "company_id": 4564,
- "good_id": 587018,
- "amount": -10,
- "cost_per_unit": 100,
- "discount": 0,
- "cost": 1000,
- "unit_id": 88272,
- "operation_unit_type": 1,
- "storage_id": 36539,
- "supplier_id": 0,
- "record_id": 0,
- "client_id": 0,
- "master_id": 49754,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "",
- "service_id": 0,
- "user_id": 3,
- "deleted": false,
- "pkg_amount": 0
}, - {
- "id": 3728233,
- "document_id": 22256643,
- "type_id": 1,
- "company_id": 4564,
- "good_id": 232674,
- "amount": -10,
- "cost_per_unit": 127.5,
- "discount": 0,
- "cost": 1275,
- "unit_id": 1,
- "operation_unit_type": 2,
- "storage_id": 36539,
- "supplier_id": 0,
- "record_id": 0,
- "client_id": 0,
- "master_id": 49754,
- "create_date": "2025-09-21T23:00:00.000+03:00",
- "comment": "",
- "service_id": 0,
- "user_id": 3,
- "deleted": false,
- "pkg_amount": 0
}
], - "meta": {
- "count": 2
}
}Creating a transaction with a personal account involves creating a document, a transaction with a personal account, and a financial transaction within a single API request.
| salon_id required | number Location ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| client_id required | number ID of the client, the owner of the client personal account |
| deposit_id required | number personal account ID |
| amount required | number replenishment amount |
| master_id | number Employee ID |
| account_id required | number Checkout ID for payment |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "document": {
- "id": 1,
- "user_id": 1,
- "salon_id": 1,
- "type_id": 9,
- "type": {
- "id": 9,
- "title": "Account replenishment (advance payment)"
}, - "comment": "",
- "number": 1,
- "salon": {
- "id": 1,
- "title": "Branch in New York",
- "public_title": "Branch in New York",
- "business_group_id": 1,
- "business_type_id": 1,
- "country_id": 1,
- "city_id": 2,
- "timezone": 3,
- "timezone_name": "America/New_York",
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "zip": "129090",
- "phone": "+1-315-555-0175",
- "phones": [ ],
- "site": "www.example.com",
- "allow_delete_record": true,
- "allow_change_record": true
}, - "user": {
- "id": 1,
- "name": "James Smith",
- "phone": "+1-315-555-0175"
}
}, - "deposits_transactions": [
- {
- "id": 1,
- "salon_id": 1,
- "salon_group_id": 1,
- "document_id": 1,
- "deposit_id": 1,
- "deposit_type_id": 1,
- "master_id": 1,
- "user_id": 1,
- "amount": 100.5,
- "comment": "",
- "date_create": "2025-09-21T23:00:00.000+03:00",
- "deleted": false,
- "deposit": {
- "id": 1,
- "deposit_type_id": 1,
- "salon_group_id": 1,
- "initial_balance": 10000,
- "balance": 12239.56,
- "blocked": false,
- "date_create": "2025-09-21T23:00:00.000+03:00"
}, - "deposit_type": {
- "id": 1,
- "salon_group_id": 1,
- "title": "Account type 1",
- "date_create": "2025-09-21T23:00:00.000+03:00",
- "deleted": false
}
}
], - "payment_transactions": [
- {
- "id": 1,
- "document_id": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "type_id": 10,
- "expense_id": 10,
- "account_id": 1,
- "amount": 100.5,
- "client_id": 1,
- "master_id": 1,
- "supplier_id": 0,
- "comment": "",
- "item_id": 1,
- "target_type_id": 0,
- "record_id": 0,
- "goods_transaction_id": 0,
- "type": {
- "id": 10,
- "title": "Refill"
}
}
]
}, - "meta": [ ]
}| company_id required | number Location ID |
| client_id required | number Client ID |
| Accept | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
{- "success": true,
- "data": [
- {
- "deposit": {
- "id": 1,
- "salon_group_id": 1,
- "deposit_type_id": 1,
- "initial_balance": 0,
- "balance": 1000,
- "blocked": false,
- "date_create": "2025-09-21T23:00:00.000+03:00"
}, - "deposit_type": {
- "id": 1,
- "salon_group_id": 1,
- "title": "Account type header",
- "date_create": "2025-09-21T23:00:00.000+03:00",
- "deleted": false
}
}
], - "meta": {
- "count": 1
}
}| chain_id required | number Chain ID |
| balance_from | number Minimum balance for filtering |
| balance_to | number Maximum balance for filtering |
| page | number Page number |
| limit | number Number of items per page |
| Accept | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
{- "success": true,
- "data": [
- {
- "deposit": {
- "id": 1,
- "salon_group_id": 1,
- "deposit_type_id": 1,
- "initial_balance": 0,
- "balance": 1000,
- "blocked": false,
- "date_create": "2025-09-21T23:00:00.000+03:00"
}, - "deposit_type": {
- "id": 1,
- "salon_group_id": 1,
- "title": "Account type header",
- "date_create": "2025-09-21T23:00:00.000+03:00",
- "deleted": false
}, - "client": {
- "id": 1,
- "name": "Client name",
- "phone": 71234567890
}
}
], - "meta": {
- "count": 1
}
}| chain_id required | number Chain ID |
| phone required | number Customer phone number |
| Accept | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
{- "success": true,
- "data": [
- {
- "deposit": {
- "id": 1,
- "salon_group_id": 1,
- "deposit_type_id": "1,",
- "initial_balance": 0,
- "balance": 1000,
- "blocked": false,
- "date_create": "2025-09-21T23:00:00.000+03:00"
}, - "deposit_type": {
- "id": 1,
- "salon_group_id": 1,
- "title": "Account type header",
- "date_create": "2025-09-21T23:00:00.000+03:00",
- "deleted": false
}
}
], - "meta": {
- "count": 1
}
}| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "1",
- "title": "USA",
- "full_title": "United States",
- "phone_code": "1",
- "phone_template": "+1 xxx xxx-xx-xx",
- "phone_example": "+1 760 230-63-78",
- "currency": "USD",
- "exchange": "1"
}, - {
- "id": "2",
- "title": "Latvia",
- "full_title": "Latvian republic",
- "phone_code": "371",
- "phone_template": "+371 xx xxx xxx",
- "phone_example": "+371 21 654 987",
- "currency": "EUR",
- "exchange": "50"
}
], - "meta": [ ]
}The location chain object has the following fields:
| Field | Type | Description |
|---|---|---|
| id | number | Location chain ID |
| title | string | Location chain name |
| companies | array | List of chain locations |
| access | object | Object with access rights for chain management |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data |
{- "success": true,
- "data": [
- {
- "id": 509,
- "title": "Chain of salons in New York",
- "companies": [
- {
- "id": 38726,
- "title": "Salon in New York"
}, - {
- "id": 39287,
- "title": "Salon in New York"
}
], - "access": {
- "settings_access": "1",
- "clients_access": "1",
- "users_access": "1",
- "loyalty_access": "1",
- "loyalty_cards_manual_transactions_access": "1",
- "chain_services_access": "1"
}
}, - {
- "id": 508,
- "title": "Chain of salons in New York",
- "companies": [
- {
- "id": 38545,
- "title": "Salon in New York"
}, - {
- "id": 38704,
- "title": "Salon in New York"
}
], - "access": {
- "settings_access": "1",
- "clients_access": "1",
- "users_access": "1",
- "loyalty_access": "1",
- "loyalty_cards_manual_transactions_access": "1",
- "chain_services_access": "1"
}
}
]
}start_date: Report date
master_id: Employee ID
| company_id required | integer Company ID |
| start_date | string Example: start_date='' period start date |
| master_id | integer Example: master_id=0 Employee ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "stats": {
- "clients": 7,
- "clients_average": 123.45,
- "records": 14,
- "records_average": 4231.51,
- "visit_records": 13,
- "visit_records_average": 100500.01,
- "non_visit_records": 1,
- "non_visit_records_average": 200,
- "targets": 14,
- "targets_paid": 10255,
- "goods": 4,
- "goods_paid": 12452.18,
- "certificates": 1,
- "certificates_paid": 9876,
- "abonement": 0,
- "abonement_paid": 0
}, - "paids": {
- "accounts": [
- {
- "title": "Cards",
- "amount": 6987
}, - {
- "title": "Cash",
- "amount": 54321.13
}, - {
- "title": "Cash register",
- "amount": 12531
}
], - "discount": [
- {
- "title": "Advance Discount",
- "amount": 1816.875
}, - {
- "title": "Written off bonuses",
- "amount": 800
}, - {
- "title": "Promotion discount",
- "amount": 123
}
], - "total": {
- "accounts": 2657.13,
- "discount": 1241.875
}
}, - "z_data": {
- "2025-09-21T23:00:00.000+03:00": [
- {
- "client_id": "11223344",
- "client_name": "John Smith",
- "client_phone": "+1-315-555-0175",
- "client_email": "j.smith@example.com",
- "masters": [
- {
- "master_id": "321123",
- "master_name": "Robert Brown",
- "service": [
- {
- "item_title": "Highlighting from 9 strands",
- "first_cost": 3500,
- "discount": 0,
- "result_cost": 3500,
- "transactions": [
- {
- "accounts_amount": 0,
- "loyalty_amount": 700,
- "payment_type": "Card: Gold Card"
}, - {
- "accounts_amount": 0,
- "loyalty_amount": 100,
- "payment_type": "Card: Gold Card"
}, - {
- "accounts_amount": 0,
- "loyalty_amount": 1,
- "payment_type": "Card: Bonus card"
}
]
}
], - "good": [
- {
- "item_title": "Spray For Hair",
- "first_cost": 15,
- "discount": 2.25,
- "result_cost": 12.75,
- "transactions": [
- {
- "accounts_amount": 12.75,
- "loyalty_amount": 0,
- "payment_type": "Cash"
}
]
}
], - "others": {
- "item_title": "Other operations",
- "first_cost": 347,
- "discount": 0,
- "result_cost": 347,
- "transactions": [
- {
- "accounts_amount": 23,
- "loyalty_amount": 0,
- "payment_type": "Cash"
}, - {
- "accounts_amount": 324,
- "loyalty_amount": 0,
- "payment_type": "Cash"
}
]
}
}
]
}
]
}, - "currency": "USD"
}, - "meta": [ ]
}| field_category required | string Example: record Field category.
|
| company_id required | integer Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "salon_id": 1,
- "custom_field": {
- "id": 1,
- "code": "my_text_field",
- "show_in_ui": true,
- "title": "test field",
- "user_can_edit": true,
- "type": {
- "code": "text",
- "title": "Text"
}
}
}
], - "meta": [ ]
}To add a field, the user must be part of the Chain associated with the location and have the appropriate access rights in the following section:
Settings → Access → Additional Fields → Create additional fields
| field_category required | string Example: record Field category.
|
| company_id required | integer Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| type required | string Field type |
| code required | string Field ID |
| title required | string Field name |
| user_can_edit required | boolean Can the user edit the field |
| show_in_ui required | boolean Whether to show the field in the interface |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "type": "text",
- "code": "my_text_field",
- "title": "test field",
- "user_can_edit": true,
- "show_in_ui": true
}{- "success": true,
- "data": {
- "id": 1,
- "salon_id": 1,
- "custom_field": {
- "id": 1,
- "code": "my_text_field",
- "show_in_ui": true,
- "title": "test field",
- "user_can_edit": true,
- "type": {
- "code": "text",
- "title": "Text"
}
}
}, - "meta": [ ]
}To update a field, the user must be part of the Chain associated with the location and have the appropriate access rights in the following section
Settings → Access → Additional Fields → Modify additional fields
| field_category required | string Example: record Field category.
|
| company_id required | integer Company ID |
| field_id required | integer field ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| type required | string Field type |
| code required | string Field ID |
| title required | string Field name |
| user_can_edit required | boolean Can the user edit the field |
| show_in_ui required | boolean Whether to show the field in the interface |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "type": "text",
- "code": "my_text_field",
- "title": "test field",
- "user_can_edit": true,
- "show_in_ui": true
}{- "success": true,
- "data": null,
- "meta": {
- "message": "Saved"
}
}To remove a field, the user must be part of the Chain associated with the location and have the appropriate access rights in the following section:
Settings → Access → Additional Fields → Remove additional fields
| field_category required | string Example: record Field category.
|
| company_id required | integer Company ID |
| field_id required | integer field ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": null,
- "meta": {
- "message": "Deleted"
}
}| Number | Title |
|---|---|
| 1 | Delivered |
| 2 | Not delivered |
| 4 | Sent to phone |
| 8 | Transferred to the operator |
| 16 | Rejected by operator |
| 52 | Not enough funds |
In the event of an error, the corresponding HTTP status code is returned. In some cases, a descriptive error message is also included in the response. The following error codes may be returned by all API methods:
| error code | Http status code | Title | Description |
|---|---|---|---|
| 5 | 400 | ENTITY_VALIDATION_ERROR | The request body did not pass validation |
| 10 | 400 | FIELD_VALIDATION_ERROR | Parameter not validated |
| 15 | 403 | ACCESS_FORBIDDEN | The action is not available, the application does not have the required permissions. |
| 20 | 401 | INVALID_PARTNER_TOKEN | partner_token missing or invalid |
| 30 | 404 | RESOURCE_NOT_FOUND | The resource at the requested path does not exist |
When sending SMS, the delivery_callback_url attribute is passed in the request - this is the url to which message statuses should be sent.
Use it to send message statuses. Url to which message statuses should be sent - https://app.alteg.io/smsprovider/status/callback/{partner_token}
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| id | string Identifier |
| status | number Message status |
| payment_sum | number Full message cost |
| currency_iso | string Currency ISO |
| parts_amount | number Amount of message's parts |
[- {
- "id": "232674",
- "status": 1,
- "payment_sum": 0.045,
- "currency_iso": "EUR",
- "parts_amount": 2
}
]{- "success": true
}| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
{- "success": true,
- "data": {
- "agreement": {
- "content": "text of the agreement"
}
}, - "meta": [ ]
}The transferred phone number is checked for compliance with Altegio rules.
| phone required | string Checked phone number |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
{- "success": true,
- "data": {
- "is_valid": true
}, - "meta": [ ]
}| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| id | string Unique ID of the sales document |
| date | string <date-time> Date and time the document was sent for printing (in ISO-8601 format) |
| document_id | integer <int32> Internal document identifier in the Altegio system |
| type | string Enum: "sale" "return" Document type (list of possible values) |
| print_receipt | boolean Whether to print a paper check at the checkout during fiscalization |
object Client entity | |
Array of objects List of positions in the check | |
Array of objects List of fees applied per check | |
| tax | string Type of taxation system (slug from the list of taxation systems) |
object The Essence of a Cashier | |
object Options for the connected POS terminal | |
| callback_url | string Link to update fiscal status |
| custom_text | string Arbitrary text for printing on a receipt |
{- "id": "d72fece5-6825-4895-9395-0133195612a4",
- "date": "2025-09-21T23:00:00.000+03:00",
- "document_id": 239083104,
- "type": "sale",
- "print_receipt": true,
- "customer": {
- "email": "customer@example.com",
- "phone": "+1-315-555-0175"
}, - "positions": [
- {
- "type": "service",
- "title": "Consultation",
- "price": 13.19,
- "quantity": 1,
- "discount_amount": 2.54,
- "vat": "ru_vat_10",
- "payment_method": "payment",
- "barcode": "12345"
}
], - "payments": [
- {
- "type": "card",
- "sum": 5.55
}, - {
- "type": "cash",
- "sum": 4.55
}, - {
- "type": "prepaid",
- "sum": 0.55
}
], - "tax": "ru_osn",
- "cashier": {
- "uid": "4895-9395-0133195612a4",
- "name": "John Smith",
- "position": "Cashier"
}, - "pos": {
- "enabled": true,
- "slip_count": 2
}, - "custom_text": "some custom text"
}{- "id": "d72fece5-6825-4895-9395-0133195612a4",
- "status": "success",
- "code": 0,
- "message": "OK"
}A list of tax systems and VAT available for a country can be obtained by requesting the country ID for which the list is to be obtained. The country ID can be obtained from list of countries.
The list is an array of tax systems with a nested VAT array for each tax system.
The taxation system has the following structure:
| Field | Type | Description |
|---|---|---|
| title | string | Name of taxation system |
| slug | string | Code name for the taxation system |
| vats | Array of objects(Vat[]) | List of available VAT for the taxation system |
VAT has the following structure:
| Field | Type | Description |
|---|---|---|
| title | string | Title VAT |
| slug | string | Code name VAT |
| countryId required | number Example: 1 Country ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of taxation systems found) |
{- "success": true,
- "data": [
- {
- "title": "General DOS",
- "slug": "ru_osn",
- "vats": [
- {
- "title": "0%",
- "slug": "ru_vat_0"
}, - {
- "title": "10%",
- "slug": "ru_vat_10"
}, - {
- "title": "20%",
- "slug": "ru_vat_20"
}, - {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}, - {
- "title": "Simplified simplified tax system (Income)",
- "slug": "ru_usn",
- "vats": [
- {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}, - {
- "title": "Simplified simplified tax system (Income minus Expense)",
- "slug": "ru_usnr",
- "vats": [
- {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}, - {
- "title": "Single tax on imputed income UTII",
- "slug": "ru_envd",
- "vats": [
- {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}, - {
- "title": "Unified agricultural tax UST",
- "slug": "ru_esn",
- "vats": [
- {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}, - {
- "title": "Patent taxation system",
- "slug": "ru_psn",
- "vats": [
- {
- "title": "is not a subject to a tax",
- "slug": "ru_vat_none"
}
]
}
], - "meta": {
- "count": 6
}
}| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Conetnt-Type required | string application/json |
| Authorization required | string Bearer partner_token |
{ }| chain_id required | integer Chain ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| id | integer <int32> Template ID |
| type | string Enum: "big" "mid" "small" "custom" Template option |
| body | string Template text |
| message_type | string Enum: "loyalty_discount_expiration" "loyalty_cashback_expiration" "loyalty_discount_increased" "loyalty_discount_decreased" "loyalty_card_created" "loyalty_card_withdraw" "loyalty_withdraw_cancelled" "loyalty_card_manual" "loyalty_card_manual_withdraw" "loyalty_card_cashback" "loyalty_card_cashback_cancelled" "loyalty_card_income" "loyalty_discount_changed" "loyalty_cashback_changed" "loyalty_settings_abonement_notification" Message type |
[- {
- "id": 12,
- "type": "small",
- "message_type": "loyalty_discount_expiration",
- "body": "Your discount expires tomorrow"
}
]| chain_id required | integer Chain ID |
| include | string Enum: "applicable_items" "rules" "companies" "loyalty_card_types" "on_changed_notification_template" "on_expiration_notification_template" Include additional resources in the answer |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| title required | string Share name |
| type required | string Enum: "discount_static" "discount_accumulative_visits" "discount_accumulative_sold" "discount_accumulative_paid" "cashback_static_sold" "cashback_static_paid" "cashback_accumulative_paid" "cashback_accumulative_sold" "cashback_accumulative_paid_visits" "cashback_accumulative_sold_visits" "cashback_sold_visits" "cashback_paid_visits" "package_discount" Promotion type |
| service_item_type required | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to services |
| good_item_type required | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to products |
| value_unit required | string Enum: "percent" "amount" Bonus or discount measurement unit (percentage, fixed amount) |
| usage_limit | integer <int32> Limit on the number of applications (only for cashback) |
| visit_multiplicity | integer <int32> Multiplicity of application by visits (only for cashback) |
| sold_items_multiplicity | integer <int32> How many services you need to pay to get a discount on promotional services (only for the promotion type "Discount by condition") |
| expiration_timeout | integer <int32> Expiration date of bonuses or discounts |
| expiration_timeout_unit | string Enum: "day" "week" "month" "year" The unit of measurement for the expiration date of bonuses or discounts |
| expiration_notification_timeout | integer <int32> How many days before the bonus or discount expires, a notification must be sent to the client |
| params_source_type | string Enum: "loyalty_card" "active_companies" "chain" Where to get the client's history to calculate the size of the bonus or discount (for accumulation promotions or conditional discounts) |
| history_start_date | string <date> From what date to take into account the client's history to calculate the size of the bonus or discount (for accumulative promotions or conditional discounts) |
| loyalty_card_type_ids | Array of integers <int32> [ items <int32 > ] Identifiers of types of cards for which the promotion is valid |
object (Root Type for LoyaltyNotificationMessageTemplateRequest) Body of the request to bind the loyalty notification template | |
object (Root Type for LoyaltyNotificationMessageTemplateRequest) Body of the request to bind the loyalty notification template | |
required | Array of objects (Root Type for LoyaltyProgramRuleRequest) Rules for determining the value of the bonus or discount (only one rule is allowed for fixed promotions) |
| company_ids required | Array of integers <int32> [ items <int32 > ] Identifiers of locations where the promotion is valid |
| allowed_service_ids | Array of integers <int32> [ items <int32 > ] Service and service category identifiers (if application type is set for some services) |
| allowed_good_ids | Array of integers <int32> [ items <int32 > ] Item IDs (if application type is set for some items) |
| allowed_good_category_ids | Array of integers <int32> [ items <int32 > ] Product category identifiers (if application type is set for some products) |
| id | integer <int32> Stock ID |
| title | string Share name |
| type | string Enum: "discount_static" "discount_accumulative_visits" "discount_accumulative_sold" "discount_accumulative_paid" "cashback_static_sold" "cashback_static_paid" "cashback_accumulative_paid" "cashback_accumulative_sold" "cashback_accumulative_paid_visits" "cashback_accumulative_sold_visits" "cashback_sold_visits" "cashback_paid_visits" "package_discount" Promotion type |
| service_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to services |
| good_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to products |
| value_unit | string Enum: "percent" "amount" Bonus or discount measurement unit (percentage, fixed amount) |
| usage_limit | integer <int32> Limit on the number of applications (only for cashback) |
| visit_multiplicity | integer <int32> Multiplicity of application by visits (only for cashback) |
| sold_items_multiplicity | integer <int32> How many services you need to pay to get a discount on promotional services (only for the type of promotion "Discount by condition") |
| expiration_timeout | integer <int32> Expiration date of bonuses or discounts |
| expiration_timeout_unit | string Enum: "day" "week" "month" "year" The unit of measurement for the expiration date of bonuses or discounts |
| expiration_notification_timeout | integer <int32> How many days before the bonus or discount expires, a notification must be sent to the client |
| params_source_type | string Enum: "loyalty_card" "active_companies" "chain" Where to get the client's history to calculate the size of the bonus or discount (for accumulation promotions or conditional discounts) |
| history_start_date | string <date> From what date to take into account the client's history to calculate the size of the bonus or discount (for accumulative promotions or conditional discounts) |
| on_changed_notification_template_id | integer <int32> Notification template ID when changing bonus or discount |
| on_expiration_notification_template_id | integer <int32> Identifier of the notification template when a bonus or discount burns |
Array of objects (Root Type for LoyaltyCardType) Type of cards for which the promotion is valid (on request) | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
Array of objects (Root Type for LoyaltyProgramRule) Rules for determining the value of the bonus or discount (only one rule is allowed for fixed promotions) (on request) | |
Array of objects (Company) Locations where the promotion is valid (on request) | |
Array of objects (Root Type for LoyaltyEntityAttendanceItem) Related entities for selective application of the promotion (on request) |
{- "title": "Cumulative discount for some services and not for goods",
- "type": "discount_accumulative_paid",
- "service_item_type": "custom_allowed",
- "good_item_type": "not_allowed",
- "allowed_service_ids": [
- 53,
- 92
], - "allowed_good_ids": { },
- "allowed_good_category_ids": { },
- "value_unit": "percent",
- "usage_limit": 0,
- "visit_multiplicity": 0,
- "sold_items_multiplicity": 0,
- "expiration_timeout": 6,
- "expiration_timeout_unit": "month",
- "expiration_notification_timeout": 7,
- "params_source_type": "chain",
- "history_start_date": "2025-09-21T23:00:00.000+03:00",
- "loyalty_card_type_ids": [
- 51,
- 29
], - "on_changed_notification_template": {
- "type": "custom",
- "body": "Your discount has changed"
}, - "on_expiration_notification_template": {
- "type": "big"
}, - "rules": [
- {
- "parameter": 10,
- "value": 2.5,
- "service_id": 0
}, - {
- "parameter": 30,
- "value": 7.5,
- "service_id": 0
}
], - "company_ids": [
- 49
]
}{- "id": 34,
- "title": "Cumulative discount for some services and not for goods",
- "type": "discount_accumulative_paid",
- "service_item_type": "custom_allowed",
- "good_item_type": "not_allowed",
- "value_unit": "percent",
- "usage_limit": 0,
- "visit_multiplicity": 0,
- "sold_items_multiplicity": 0,
- "expiration_timeout": 6,
- "expiration_timeout_unit": "month",
- "expiration_notification_timeout": 7,
- "params_source_type": "chain",
- "history_start_date": "2025-09-21T23:00:00.000+03:00",
- "on_changed_notification_template_id": 55,
- "on_expiration_notification_template_id": 84,
- "loyalty_card_types": [
- {
- "id": 51,
- "title": "Card type 1"
}, - {
- "id": 29,
- "title": "Card type 2"
}
], - "on_changed_notification_template": {
- "id": 55,
- "type": "custom",
- "body": "Your discount has changed",
- "message_type": "loyalty_discount_changed"
}, - "on_expiration_notification_template": {
- "id": 84,
- "type": "big",
- "body": "Detailed text about discount burning",
- "message_type": "loyalty_discount_expiration"
}, - "rules": [
- {
- "id": 94,
- "parameter": 10,
- "value": 2.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}, - {
- "id": 74,
- "parameter": 30,
- "value": 7.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}
], - "companies": [
- {
- "id": 49,
- "title": "Branch",
- "country": "United States",
- "country_id": 5,
- "city": "New York",
- "city_id": 83,
- "phone": "+1-315-555-0175",
- "timezone": "America/New_York",
- "address": "Branch address",
- "coordinate_lat": "40.730610",
- "coordinate_lng": 18.63
}
], - "applicable_items": [
- {
- "id": 53,
- "title": "Service category 1",
- "is_service": true,
- "is_category": true
}, - {
- "id": 92,
- "title": "Service category 2",
- "is_service": true,
- "is_category": true
}
]
}| chain_id required | integer Chain ID |
| loyalty_program_id required | integer Promotion ID |
| include | string Enum: "applicable_items" "rules" "companies" "loyalty_card_types" "on_changed_notification_template" "on_expiration_notification_template" Include additional resources in the answer |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| id | integer <int32> Stock ID |
| title | string Share name |
| type | string Enum: "discount_static" "discount_accumulative_visits" "discount_accumulative_sold" "discount_accumulative_paid" "cashback_static_sold" "cashback_static_paid" "cashback_accumulative_paid" "cashback_accumulative_sold" "cashback_accumulative_paid_visits" "cashback_accumulative_sold_visits" "cashback_sold_visits" "cashback_paid_visits" "package_discount" Promotion type |
| service_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to services |
| good_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to products |
| value_unit | string Enum: "percent" "amount" Bonus or discount measurement unit (percentage, fixed amount) |
| usage_limit | integer <int32> Limit on the number of applications (only for cashback) |
| visit_multiplicity | integer <int32> Multiplicity of application by visits (only for cashback) |
| sold_items_multiplicity | integer <int32> How many services you need to pay to get a discount on promotional services (only for the type of promotion "Discount by condition") |
| expiration_timeout | integer <int32> Expiration date of bonuses or discounts |
| expiration_timeout_unit | string Enum: "day" "week" "month" "year" The unit of measurement for the expiration date of bonuses or discounts |
| expiration_notification_timeout | integer <int32> How many days before the bonus or discount expires, a notification must be sent to the client |
| params_source_type | string Enum: "loyalty_card" "active_companies" "chain" Where to get the client's history to calculate the size of the bonus or discount (for accumulation promotions or conditional discounts) |
| history_start_date | string <date> From what date to take into account the client's history to calculate the size of the bonus or discount (for accumulative promotions or conditional discounts) |
| on_changed_notification_template_id | integer <int32> Notification template ID when changing bonus or discount |
| on_expiration_notification_template_id | integer <int32> Identifier of the notification template when a bonus or discount burns |
Array of objects (Root Type for LoyaltyCardType) Type of cards for which the promotion is valid (on request) | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
Array of objects (Root Type for LoyaltyProgramRule) Rules for determining the value of the bonus or discount (only one rule is allowed for fixed promotions) (on request) | |
Array of objects (Company) Locations where the promotion is valid (on request) | |
Array of objects (Root Type for LoyaltyEntityAttendanceItem) Related entities for selective application of the promotion (on request) |
{- "id": 34,
- "title": "Cumulative discount for some services and not for goods",
- "type": "discount_accumulative_paid",
- "service_item_type": "custom_allowed",
- "good_item_type": "not_allowed",
- "value_unit": "percent",
- "usage_limit": 0,
- "visit_multiplicity": 0,
- "sold_items_multiplicity": 0,
- "expiration_timeout": 6,
- "expiration_timeout_unit": "month",
- "expiration_notification_timeout": 7,
- "params_source_type": "chain",
- "history_start_date": "2025-09-21T23:00:00.000+03:00",
- "on_changed_notification_template_id": 55,
- "on_expiration_notification_template_id": 84,
- "loyalty_card_types": [
- {
- "id": 51,
- "title": "Card type 1"
}, - {
- "id": 29,
- "title": "Card type 2"
}
], - "on_changed_notification_template": {
- "id": 55,
- "type": "custom",
- "body": "Your discount has changed",
- "message_type": "loyalty_discount_changed"
}, - "on_expiration_notification_template": {
- "id": 84,
- "type": "big",
- "body": "Detailed text about discount burning",
- "message_type": "loyalty_discount_expiration"
}, - "rules": [
- {
- "id": 94,
- "parameter": 10,
- "value": 2.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}, - {
- "id": 74,
- "parameter": 30,
- "value": 7.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}
], - "companies": [
- {
- "id": 49,
- "title": "Branch",
- "country": "United States",
- "country_id": 5,
- "city": "New York",
- "city_id": 83,
- "phone": "+1-315-555-0175",
- "timezone": "America/New_York",
- "address": "Branch address",
- "coordinate_lat": "40.730610",
- "coordinate_lng": 18.63
}
], - "applicable_items": [
- {
- "id": 53,
- "title": "Service category 1",
- "is_service": true,
- "is_category": true
}, - {
- "id": 92,
- "title": "Service category 2",
- "is_service": true,
- "is_category": true
}
]
}| chain_id required | integer Chain ID |
| loyalty_program_id required | integer Promotion ID |
| include | string Enum: "applicable_items" "rules" "companies" "loyalty_card_types" "on_changed_notification_template" "on_expiration_notification_template" Include additional resources in the answer |
| title | string Share name |
| usage_limit | integer <int32> Limit on the number of applications (only for cashback) |
| expiration_timeout | integer <int32> Expiration date of bonuses or discounts |
| expiration_timeout_unit | string Enum: "day" "week" "month" "year" The unit of measurement for the expiration date of bonuses or discounts |
| expiration_notification_timeout | integer <int32> How many days before the bonus or discount expires, a notification must be sent to the client |
| loyalty_card_type_ids | Array of integers <int32> [ items <int32 > ] Identifiers of types of cards for which the promotion is valid |
object (Root Type for LoyaltyNotificationMessageTemplateRequest) Body of the request to bind the loyalty notification template | |
object (Root Type for LoyaltyNotificationMessageTemplateRequest) Body of the request to bind the loyalty notification template | |
Array of objects (Root Type for LoyaltyProgramRuleRequest) Rules for determining the value of the bonus or discount (only one rule is allowed for fixed promotions) | |
| company_ids | Array of integers <int32> [ items <int32 > ] Identifiers of locations where the promotion is valid |
| allowed_service_ids | Array of integers <int32> [ items <int32 > ] Service and service category identifiers (if application type is set for some services) |
| allowed_good_ids | Array of integers <int32> [ items <int32 > ] Item IDs (if application type is set for some items) |
| allowed_good_category_ids | Array of integers <int32> [ items <int32 > ] Product category identifiers (if application type is set for some products) |
| id | integer <int32> Stock ID |
| title | string Share name |
| type | string Enum: "discount_static" "discount_accumulative_visits" "discount_accumulative_sold" "discount_accumulative_paid" "cashback_static_sold" "cashback_static_paid" "cashback_accumulative_paid" "cashback_accumulative_sold" "cashback_accumulative_paid_visits" "cashback_accumulative_sold_visits" "cashback_sold_visits" "cashback_paid_visits" "package_discount" Promotion type |
| service_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to services |
| good_item_type | string Enum: "any_allowed" "not_allowed" "custom_allowed" Type of application to products |
| value_unit | string Enum: "percent" "amount" Bonus or discount measurement unit (percentage, fixed amount) |
| usage_limit | integer <int32> Limit on the number of applications (only for cashback) |
| visit_multiplicity | integer <int32> Multiplicity of application by visits (only for cashback) |
| sold_items_multiplicity | integer <int32> How many services you need to pay to get a discount on promotional services (only for the type of promotion "Discount by condition") |
| expiration_timeout | integer <int32> Expiration date of bonuses or discounts |
| expiration_timeout_unit | string Enum: "day" "week" "month" "year" The unit of measurement for the expiration date of bonuses or discounts |
| expiration_notification_timeout | integer <int32> How many days before the bonus or discount expires, a notification must be sent to the client |
| params_source_type | string Enum: "loyalty_card" "active_companies" "chain" Where to get the client's history to calculate the size of the bonus or discount (for accumulation promotions or conditional discounts) |
| history_start_date | string <date> From what date to take into account the client's history to calculate the size of the bonus or discount (for accumulative promotions or conditional discounts) |
| on_changed_notification_template_id | integer <int32> Notification template ID when changing bonus or discount |
| on_expiration_notification_template_id | integer <int32> Identifier of the notification template when a bonus or discount burns |
Array of objects (Root Type for LoyaltyCardType) Type of cards for which the promotion is valid (on request) | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
object (Root Type for LoyaltyNotificationMessageTemplate) Loyalty notification template | |
Array of objects (Root Type for LoyaltyProgramRule) Rules for determining the value of the bonus or discount (only one rule is allowed for fixed promotions) (on request) | |
Array of objects (Company) Locations where the promotion is valid (on request) | |
Array of objects (Root Type for LoyaltyEntityAttendanceItem) Related entities for selective application of the promotion (on request) |
{- "title": "Cumulative discount for some services and not for goods",
- "allowed_service_ids": [
- 53,
- 92
], - "allowed_good_ids": { },
- "allowed_good_category_ids": { },
- "usage_limit": 0,
- "expiration_timeout": 6,
- "expiration_timeout_unit": "month",
- "expiration_notification_timeout": 7,
- "loyalty_card_type_ids": [
- 51,
- 29
], - "on_changed_notification_template": {
- "type": "custom",
- "body": "Your discount has changed"
}, - "on_expiration_notification_template": {
- "type": "big"
}, - "rules": [
- {
- "parameter": 10,
- "value": 2.5,
- "service_id": 0
}, - {
- "parameter": 30,
- "value": 7.5,
- "service_id": 0
}
], - "company_ids": [
- 49
]
}{- "id": 34,
- "title": "Cumulative discount for some services and not for goods",
- "type": "discount_accumulative_paid",
- "service_item_type": "custom_allowed",
- "good_item_type": "not_allowed",
- "value_unit": "percent",
- "usage_limit": 0,
- "visit_multiplicity": 0,
- "sold_items_multiplicity": 0,
- "expiration_timeout": 6,
- "expiration_timeout_unit": "month",
- "expiration_notification_timeout": 7,
- "params_source_type": "chain",
- "history_start_date": "2025-09-21T23:00:00.000+03:00",
- "on_changed_notification_template_id": 55,
- "on_expiration_notification_template_id": 84,
- "loyalty_card_types": [
- {
- "id": 51,
- "title": "Card type 1"
}, - {
- "id": 29,
- "title": "Card type 2"
}
], - "on_changed_notification_template": {
- "id": 55,
- "type": "custom",
- "body": "Your discount has changed",
- "message_type": "loyalty_discount_changed"
}, - "on_expiration_notification_template": {
- "id": 84,
- "type": "big",
- "body": "Detailed text about discount burning",
- "message_type": "loyalty_discount_expiration"
}, - "rules": [
- {
- "id": 94,
- "parameter": 10,
- "value": 2.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}, - {
- "id": 74,
- "parameter": 30,
- "value": 7.5,
- "loyalty_program_id": 34,
- "loyalty_type_id": 3,
- "service_id": 0
}
], - "companies": [
- {
- "id": 49,
- "title": "Branch",
- "country": "United States",
- "country_id": 5,
- "city": "New York",
- "city_id": 83,
- "phone": "+1-315-555-0175",
- "timezone": "America/New_York",
- "address": "Branch address",
- "coordinate_lat": "40.730610",
- "coordinate_lng": 18.63
}
], - "applicable_items": [
- {
- "id": 53,
- "title": "Service category 1",
- "is_service": true,
- "is_category": true
}, - {
- "id": 92,
- "title": "Service category 2",
- "is_service": true,
- "is_category": true
}
]
}| chain_id required | integer Chain ID |
| loyalty_program_id required | integer Promotion ID |
| include | string Enum: "applicable_items" "rules" "companies" "loyalty_card_types" "on_changed_notification_template" "on_expiration_notification_template" Include additional resources in the answer |
| chain_id required | integer Chain ID |
| created_after required | string <date> Sample start date in Y-m-d format |
| created_before required | string <date> Sample end date in Y-m-d format |
| types | Array of strings Items Enum: "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" Types of loyalty transactions included in the selection: 1 - Promotion discount, 2 - Loyalty program accrual, 3 - Loyalty card withdrawal, 4 - Referral program accrual, 5 - Manual replenishment, 6 - Manual withdrawal, 7 - Overdue points withdrawal , 8 - Withdrawal from the gift card, 9 - Use of the membership, 10 - Recalculation of the cost of the membership, 11 - Withdrawal from the personal account |
| company_ids | Array of integers Loyalty transaction affiliate IDs included in the sample |
| visit_ids | Array of integers Loyalty transaction visit IDs included in the sample |
| page | integer Selection page |
| count | integer Number of results per selection page |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of items in the response) |
{- "success": true,
- "data": [
- {
- "id": 0,
- "visit_id": 0,
- "status_id": 0,
- "amount": 0,
- "type_id": 0,
- "card_id": 0,
- "program_id": 0,
- "certificate_id": 0,
- "abonement_id": 0,
- "salon_group_id": 0,
- "item_id": 0,
- "item_type_id": 0,
- "item_record_id": 0,
- "goods_transaction_id": 0,
- "services_transaction_id": 0,
- "is_discount": true,
- "is_loyalty_withdraw": true,
- "type": {
- "id": 0,
- "title": "string"
}
}
], - "meta": {
- "count": 0
}
}1) - location ID1) - product ID (gift card/ membership)| company_id required | number Location ID |
| good_Id required | number Product ID (membership/gift card) |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
object (LoyaltyGenerateCode200Option) | |
required | object (LoyaltyGenerateCode200DataOption) |
| meta required | Array of objects |
| success required | boolean |
object (LoyaltyGenerateCodeErrorOption) | |
required | object (LoyaltyGenerateCodeErrorMetaOption) |
| success required | boolean |
object (LoyaltyGenerateCodeErrorOption) | |
required | object (LoyaltyGenerateCodeErrorMetaOption) |
| success required | boolean |
{- "success": true,
- "data": {
- "code": "1"
}, - "meta": [ ]
}A list of membership types available at a location can be obtained by requesting the location ID.
The list can be filtered by membership type name by passing the title parameter. Pagination is supported, specified by the page and page_size parameters.
The list is an array of membership types.
Membership type has the following structure:
| Field | Type | Description |
|---|---|---|
| id | number | Membership type identifier |
| title | string | Membership type name |
| allow_freeze | boolean | Is it possible to freeze memberships? true - allowed, false - not allowed |
| freeze limit | number | Maximum total freezing period (days) |
| salon_group_id | number | Identifier of the chain in which the membership type is valid |
| period | number | Membership expiration date (0 if not set) |
| period_unit_id | number | Membership expiration unit (list of possible values, if not set - 0) |
| is_allow_empty_code | boolean | Allow the sale of a membership without a code? true - allow, false - do not allow |
| is_united_balance | boolean | Total or separate membership balance: true - total, false - separate |
| united_balance_services_count | number | Number of visits for total balance |
Measurement units of subscription type validity period
| Meaning | Description |
|---|---|
| 1 | Day |
| 2 | Week |
| 3 | Month |
| 4 | Year |
| company_id required | number Company ID |
| title | string Membeship type name |
| page | number Page number |
| page_size | number The number of output lines per page. Maximum 100 |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Conetnt-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array with data objects | |
object Metadata (contains the number of subscription types found) |
{- "success": true,
- "data": [
- {
- "id": 12233,
- "salon_group_id": 123,
- "title": "Subscription with the possibility of freezing for 14 days",
- "period": 0,
- "period_unit_id": 0,
- "allow_freeze": true,
- "freeze_limit": 14,
- "is_allow_empty_code": false,
- "is_united_balance": false,
- "united_balance_services_count": 0
}, - {
- "id": 255789,
- "salon_group_id": 456,
- "title": "Subscription for 6 months",
- "period": 6,
- "period_unit_id": 3,
- "allow_freeze": false,
- "freeze_limit": 0,
- "is_allow_empty_code": false,
- "is_united_balance": false,
- "united_balance_services_count": 0
}
], - "meta": {
- "count": 2
}
}A list of membership types available at a location can be obtained by querying the location ID and membership type IDs.
The list is an array of membership types.
&ids[]={id}| company_id required | number Company ID |
| ids[] | number Membership type ID (you can specify several additional parameters &ids[]={id} |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array with data objects | |
object Metadata (contains the number of subscription types found) |
{- "success": true,
- "data": [
- {
- "id": 12233,
- "salon_group_id": 123,
- "title": "Subscription with the possibility of freezing for 14 days",
- "period": 0,
- "period_unit_id": 0,
- "allow_freeze": true,
- "freeze_limit": 14,
- "is_allow_empty_code": false,
- "is_united_balance": false,
- "united_balance_services_count": 0
}
], - "meta": {
- "count": 1
}
}A list of gift card types available at a location can be obtained by querying the location ID.
The list can be filtered by the name of the gift card type by passing the title parameter.
Pagination is supported, specified by the page and page_size parameters.
The list is an array of gift card types.
Gift card type has the following structure:
| Field | Type | Description |
|---|---|---|
| id | number | Gift card type identifier |
| title | string | Gift card type name |
| balance | number | Gift card denomination |
| is_multi | boolean | Write-off type: true - multiple write-off, false - single write-off |
| company_group_id | number | ID of the chain where the gift card type is valid |
| item_type_id | number | Application Constraint (list of possible values) |
| expiration_type_id | number | Expiration limit (list of possible values) |
| expiration_date | string | Fixed burn date in ISO8601 format (null if not set) |
| expiration_timeout | number | Gift card validity period from the date of sale (0 if not set) |
| expiration_timeout_unit_id | number | The unit of measurement of the validity period of the gift card from the moment of sale (list of possible values, if not set - 0) |
| is_allow_empty_code | boolean | Allow sale of gift card without code? true - allow, false - do not allow |
| Meaning | Description |
|---|---|
| 0 | Unlimited |
| 1 | Any services without products |
| 2 | Any products without services |
| 3 | Some services without products |
| 4 | Some services and any products |
Gift Card Type Expiration Limit
| Meaning | Description |
|---|---|
| 0 | No expiration date |
| 1 | Fixed date for all instances |
| 2 | Fixed period of validity from the date of sale |
Units of certificate type validity period
| Meaning | Description |
|---|---|
| 1 | Day |
| 2 | Week |
| 3 | Month |
| 4 | Year |
| company_id required | number Company ID |
| title | string Gift card type name |
| page | number Page number |
| page_size | number The number of output lines per page. Maximum 100 |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | integer Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of certificate types found) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "title": "Fixed burn date certificate without application restrictions",
- "balance": 10,
- "is_multi": true,
- "company_group_id": 12,
- "item_type_id": 0,
- "expiration_type_id": 1,
- "expiration_date": "2025-09-21T23:00:00.000+03:00",
- "expiration_timeout": 0,
- "expiration_timeout_unit_id": 0,
- "is_allow_empty_code": true
}, - {
- "id": 11,
- "title": "Certificate valid for 6 months from the date of sale for any goods without services",
- "balance": 100,
- "is_multi": false,
- "company_group_id": 12,
- "item_type_id": 2,
- "expiration_type_id": 2,
- "expiration_timeout": 6,
- "expiration_timeout_unit_id": 3,
- "is_allow_empty_code": false
}
], - "meta": {
- "count": 2
}
}A list of gift card types available at the location can be obtained by querying the location ID and gift card type IDs.
The list is an array of gift card types.
| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of certificate types found) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "title": "Fixed burn date certificate without application restrictions",
- "balance": 10,
- "is_multi": true,
- "company_group_id": 12,
- "item_type_id": 0,
- "expiration_type_id": 1,
- "expiration_date": "2025-09-21T23:00:00.000+03:00",
- "expiration_timeout": 0,
- "expiration_timeout_unit_id": 0,
- "is_allow_empty_code": true
}
], - "meta": {
- "count": 1
}
}The method allows you to get a list of promotions that are active for the specified location.
| company_id required | number Company ID |
| include | string The first_transaction_date value adds the date of the first stock transaction to the response. |
| type | string Enum: "discount_static" "discount_accumulative_visits" "discount_accumulative_sold" "discount_accumulative_paid" "cashback_static_sold" "cashback_static_paid" "cashback_accumulative_paid" "cashback_accumulative_sold" "cashback_accumulative_paid_visits" "cashback_accumulative_sold_visits" "cashback_sold_visits" "cashback_paid_visits" "package_discount" Promotion type |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer bearer_token, User user_token |
| success | boolean Execution success status. |
Array of objects An array of data objects. | |
object Metadata (contains the number of objects found) |
{- "success": true,
- "data": [
- {
- "id": 53591,
- "title": "100 rub discount on Altegio Implementation Consultation",
- "type": "discount_static",
- "loyalty_type_id": 1,
- "item_type_id": 4,
- "service_item_type": "custom_allowed",
- "good_item_type": "any_allowed",
- "value_unit_id": 2,
- "value_unit": "amount",
- "group_id": 502054,
- "usage_limit": 0,
- "visit_multiplicity": 1,
- "sold_items_multiplicity": 1,
- "current_package_progress": 0,
- "allowed_usages_amount": 0,
- "expiration_timeout": 0,
- "expiration_timeout_unit": "day",
- "expiration_notification_timeout": 0,
- "params_source_type": "loyalty_card",
- "on_changed_notification_template_id": 0,
- "on_expiration_notification_template_id": 0
}
], - "meta": {
- "count": 1
}
}The method allows you to get statistics on returning, new and lost customers
| company_id required | number Company ID |
| date_to required | string Period end date |
| date_from required | string Period start date |
| loyalty_program_id required | string Promotion ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer bearer_token, User user_token |
| success | boolean Execution success status |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "client_stats": {
- "new": {
- "all_count": 0,
- "lost_count": 0,
- "returned_count": 0,
- "returned_percent": 0
}, - "old": {
- "all_count": 0,
- "lost_count": 0,
- "returned_count": 0,
- "returned_percent": 0
}, - "total": {
- "all_count": 0,
- "lost_count": 0,
- "returned_count": 0,
- "returned_percent": 0
}
}, - "visits_stats_by_day": [
- {
- "date": "2025-09-21T23:00:00.000+03:00",
- "new_count": 0,
- "old_count": 0
}, - {
- "date": "2025-09-21T23:00:00.000+03:00",
- "new_count": 0,
- "old_count": 0
}
]
}, - "meta": [ ]
}The method allows you to get statistics on revenue.
| company_id required | number Company ID |
| date_to required | string Period end date |
| date_from required | string Period start date |
| loyalty_program_id required | string Promotion ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer bearer_token, User user_token |
| success | boolean Execution success status |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "income_stats": {
- "new": {
- "all_sum": 0,
- "returned_sum": 0
}, - "old": {
- "all_sum": 0,
- "returned_sum": 0
}, - "total": {
- "all_sum": 0,
- "returned_sum": 0
}
}, - "currency": {
- "id": 1,
- "iso": "RUB",
- "name": "US Dollar",
- "symbol": "USD",
- "is_symbol_after_amount": true
}, - "income_stats_by_day": [
- {
- "date": "2025-09-21T23:00:00.000+03:00",
- "new_sum": 0,
- "old_sum": 0
}, - {
- "date": "2025-09-21T23:00:00.000+03:00",
- "new_sum": 0,
- "old_sum": 0
}
]
}, - "meta": [ ]
}The method allows you to get the return statistics for an employee
| company_id required | number Company ID |
| date_to required | string Period end date |
| date_from required | string Period start date |
| loyalty_program_id required | string Promotion ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer bearer_token, User user_token |
| success | boolean Execution success status |
Array of objects Array with data objects | |
object Metadata (contains the number of objects found) |
{- "success": true,
- "data": [
- {
- "client_stats": {
- "all_count": 1,
- "lost_count": 0,
- "returned_count": 1,
- "returned_percent": 100
}, - "staff": {
- "id": 1140369,
- "name": "Doniella Davy"
}
}
], - "meta": {
- "count": 1
}
}The JSON Object containing the user appointment parameters has the following fields:
| Field | Type | Mandatory | Description |
|---|---|---|---|
| id | number | YES | Appointment ID |
| services | array of numbers | YES | List of ID service appointments |
| company | object | YES | Company parameters |
| staff | object | YES | Parameters of the specialist who was booked |
| clients_count | int | YES | Number of clients |
| date | string | YES | Session date |
| datetime | string | YES | Session date in ISO |
| create_date | string | YES | Appointment creation date |
| length | number | YES | Session duration |
| deleted | boolean | YES | Has the appointment been created ? (true if deleted) |
| notify_by_sms | number | NO | Number of hours in advance to send an SMS reminder for the appointment. Set to 0 to disable SMS reminders |
| notify_by_email | number | NO | Number of hours in advance to send an email reminder for the appointment. Set to 0 to disable email reminders |
| comment | string | YES | Appointment Comment |
| master_requested | boolean | YES | Whether a specific specialist was specified when booking (false if "any specialist" was specified) |
| online | boolean | YES | Indicates whether the appointment was created online by the client (true) or manually by an administrator (false) |
| visit_attendance | number | YES | 2 - The user confirmed the appointment, 1 - The user came, the services were provided, 0 - the user was waiting, -1 - the user did not come to visit |
| api_id | string | NO | External Appointment ID |
| last_change_date | string | NO | Date of the last edit of the appointment |
| prepaid | boolean | NO | Is online payment available for booking |
| prepaid_confirmed | boolean | NO | Online payment status |
| last_change_date | string | NO | Date of the last edit of the appointment |
| activity_id | int | NO | ID bringing group event |
Each object in the services array has the following fields:
| Field | Type | Description |
|---|---|---|
| id | number | Service ID |
| title | string | Service name |
| cost | float | Service cost |
| price_min | float | Minimum price of the service |
| price_max | float | Maximum service price |
| discount | float | Discount |
| amount | int | Number of ordered services |
| session_length | int | Service duration in seconds (only if filter by employee is set) |
The company object has the following fields:
| Field | Type | Description |
|---|---|---|
| id | number | Company ID |
| title | string | Company name |
| country_id | number | Identifier of the country in which the company is located |
| country | string | Company name |
| city_id | number | Identifier of the city where the company is located) |
| city | string | Company city name |
| time zone | string | timezone companies |
| address | string | Address where the company is located |
| phone | string | Company's main phone number |
| phones | array of strings | All phone numbers of the company |
| coordinate_lat | float | Latitude where the company is located |
| coordinate lng | float | Longitude |
| allow_delete_record | boolean | Is it possible to delete an appointment |
| allow_change_record | boolean | Is it possible to reschedule the appointment |
| site | string | Company website |
| currency_short_title | string | Currency symbol |
| allow_change_record_delay_step | int | Time after which you can reschedule the appointment |
| allow_delete_record_delay_step | int | Time after which you can delete an appointment |
The staff object has the following fields:
| Field | Type | Description |
|---|---|---|
| id | number | Employee ID |
| name | string | Employee name |
| specialization | string | Employee specialization |
| position | object | Employee position |
| show_rating | number | Whether to show employee's rating (1 - show, 0 - don't show) |
| rating | number | Employee rating |
| votes_count | number | Number of votes rated employee |
| comments_count | number | Number of comments to an employee |
| avatar | string | Path to employee avatar file |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 13132699,
- "services": [
- {
- "id": 389043,
- "title": "Correction of extended nails",
- "cost": 2300,
- "price_min": 2300,
- "price_max": 2300,
- "discount": 0,
- "amount": 1,
- "seance_length": 1800
}
], - "company": {
- "id": 4564,
- "title": "Nail correction salon",
- "country_id": 1,
- "country": "United States",
- "city_id": 2,
- "city": "New York",
- "phone": "+1-315-555-0175",
- "phones": [ ],
- "timezone": 12,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "allow_delete_record": true,
- "allow_change_record": true,
- "site": "www.example.com",
- "currency_short_title": "USD",
- "allow_change_record_delay_step": 0,
- "allow_delete_record_delay_step": 0
}, - "staff": {
- "id": 55436,
- "name": "Natalia",
- "specialization": "Master of manicure and pedicure",
- "position": {
- "id": 446,
- "title": "Manicurist"
}, - "show_rating": 1,
- "rating": 4.84,
- "votes_count": 0,
- "comments_count": 37
}, - "clients_count": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2017-10-24T17:30:00+0000",
- "create_date": "2017-10-20T21:40:24+0000",
- "comment": "",
- "deleted": true,
- "attendance": 0,
- "length": 1800,
- "notify_by_sms": 0,
- "notify_by_email": 0,
- "master_requested": false,
- "online": true,
- "api_id": "",
- "last_change_date": "2017-10-24T23:54:02+0000",
- "prepaid": false,
- "prepaid_confirmed": false,
- "activity_id": 0
}, - {
- "id": 13133413,
- "services": [
- {
- "id": 389045,
- "title": "Hand massage (10 min)",
- "cost": 300,
- "price_min": 300,
- "price_max": 400,
- "discount": 0,
- "amount": 1,
- "seance_length": 1800
}
], - "company": {
- "id": 4564,
- "title": "Nail correction salon",
- "country_id": 1,
- "country": "United States",
- "city_id": 2,
- "city": "New York",
- "phone": "+1-315-555-0175",
- "phones": [ ],
- "timezone": 12,
- "address": "New York, 787 Jackson Drive",
- "coordinate_lat": "40.730610",
- "coordinate_lon": "-73.935242",
- "allow_delete_record": true,
- "allow_change_record": true,
- "site": "www.example.com",
- "currency_short_title": "USD",
- "allow_change_record_delay_step": 0,
- "allow_delete_record_delay_step": 0
}, - "staff": {
- "id": 55436,
- "name": "Natalia",
- "specialization": "Master of manicure and pedicure",
- "position": {
- "id": 446,
- "title": "Manicurist"
}, - "show_rating": 1,
- "rating": 4.84,
- "votes_count": 0,
- "comments_count": 37
}, - "clients_count": 1,
- "date": "2025-09-21T23:00:00.000+03:00",
- "datetime": "2017-10-24T17:30:00+0000",
- "create_date": "2017-10-20T21:40:24+0000",
- "comment": "",
- "deleted": true,
- "attendance": 0,
- "length": 1800,
- "notify_by_sms": 0,
- "notify_by_email": 0,
- "master_requested": false,
- "online": true,
- "api_id": "",
- "last_change_date": "2017-10-24T23:54:02+0000",
- "prepaid": false,
- "prepaid_confirmed": false,
- "activity_id": 0
}
], - "meta": [ ]
}Creates a new employee with a minimal set of parameters.
| company_id required | number Example: 123 ID of a company. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| name required | string Name of an employee. |
| specialization required | string Specialization of an employee. |
| position_id required | number or null ID of a position that should be linked to an employee. |
| phone_number required | string or null Phone number of a user that should be linked to an employee (without "+", 9 to 15 digits). |
| success | boolean (Successful response status) Response status. |
object (Object of model "Employee with Position") | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "name": "John Johnson",
- "specialization": "Master",
- "position_id": 123,
- "phone_number": "11234567890"
}{- "success": true,
- "data": {
- "id": 123,
- "name": "John Johnson",
- "company_id": 123,
- "specialization": "Master",
- "position": {
- "id": 123,
- "title": "Position"
}
}, - "meta": { }
}| company_id required | number Company ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| name | string Employee name |
| specialization | string Employee specialization |
| weight | number Employee weight. Employees are sorted by weight on exit, heavier first |
| information | string Employee information (HTML format) |
| api_id | string External employee ID |
| hidden | number Display status in online appointment, 1 - hidden, 0 - not hidden |
| fired | number The employee's dismissal status, 1 - dismissed, 0 - not dismissed |
| user_id | number Linked user ID, 0 - unlink user |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of employees found) |
{- "name": "Basil",
- "specialization": "the hairdresser",
- "weight": 10,
- "information": "Trimming with three hands",
- "api_id": "42",
- "hidden": 0,
- "fired": 0,
- "user_id": 123
}{- "success": true,
- "data": {
- "id": 17969,
- "api_id": "42",
- "name": "Basil",
- "specialization": "the hairdresser",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "show_rating": 0,
- "rating": 0,
- "votes_count": 0,
- "user_id": 12345,
- "comments_count": 0,
- "weight": 10,
- "information": "<span><span><span> </span></span></span>",
- "hidden": 0,
- "fired": 0,
- "status": 0
}, - "meta": [ ]
}| company_id required | number Location ID |
| staff_id required | number Employee ID, if you need to work with a specific employee. |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of employees found) |
| success | boolean Execution success status (false) |
| data | string Contains null |
object Metadata (contains an error message) |
| success | boolean Execution success status (false) |
object Metadata (contains an error message) |
{- "success": true,
- "data": [
- {
- "id": 1001539,
- "name": "Employee 1",
- "company_id": 176275,
- "specialization": "specialist",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "fired": 0,
- "status": 0,
- "hidden": 0,
- "user_id": 12345
}
], - "meta": {
- "total_count": 1
}
}| company_id required | number Company ID |
| staff_id required | number Employee ID, if you need to work with a specific employee. |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": "17969",
- "name": "Basil",
- "specialization": "the hairdresser",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "show_rating": "0",
- "rating": "0",
- "votes_count": "0",
- "user_id": 12345,
- "comments_count": "0",
- "weight": "10",
- "information": "<span><span><span> </span></span></span>",
- "hidden": "0",
- "fired": "0",
- "status": "0",
- "image_group": {
- "id": 72250,
- "entity": "master",
- "entity_id": 26427,
- "images": {
- "sm": {
- "id": "186817",
- "width": "100",
- "height": "100",
- "type": "jpeg",
- "image_group_id": 72250,
- "version": "sm"
}, - "norm": {
- "id": "186818",
- "width": "180",
- "height": "220",
- "type": "jpeg",
- "image_group_id": 72250,
- "version": "norm"
}, - "origin": {
- "id": "186819",
- "width": "800",
- "height": "600",
- "type": "jpeg",
- "image_group_id": 72250,
- "version": "origin"
}
}
}
}, - {
- "id": "34006",
- "api_id": "42",
- "name": "Denis",
- "specialization": "the hairdresser",
- "position": [ ],
- "show_rating": "0",
- "rating": "0",
- "votes_count": "0",
- "user_id": 12345,
- "comments_count": "0",
- "weight": "9",
- "information": "<span><span> </span></span>",
- "hidden": "0",
- "fired": "0",
- "status": "0",
- "image_group": [ ]
}, - {
- "id": "13616",
- "name": "Alexander",
- "specialization": "the hairdresser",
- "position": [ ],
- "show_rating": "0",
- "rating": "4.76921",
- "votes_count": "0",
- "user_id": 12345,
- "comments_count": "26",
- "weight": "8",
- "information": "<span><span><span> </span></span></span>",
- "hidden": "0",
- "fired": "0",
- "status": "0",
- "image_group": [ ]
}
], - "meta": [ ]
}| company_id required | number Company ID |
| staff_id required | number Employee ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| name | string Employee name |
| specialization | string Employee specialization |
| weight | number Employee weight. Employees are sorted by weight on exit, heavier first |
| information | string Employee information (HTML format) |
| api_id | string External employee ID |
| hidden | number Display status in online appointment, 1 - hidden, 0 - not hidden |
| fired | number The employee's dismissal status, 1 - dismissed, 0 - not dismissed |
| user_id | number Linked user ID, 0 - unlink user |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of employees found) |
{- "success": true,
- "data": {
- "id": 17969,
- "api_id": "42",
- "name": "Basil",
- "specialization": "the hairdresser",
- "position": {
- "id": 1,
- "title": "Administrator"
}, - "show_rating": 0,
- "rating": 0,
- "votes_count": 0,
- "user_id": 12345,
- "comments_count": 0,
- "weight": 10,
- "information": "<span><span><span> </span></span></span>",
- "hidden": 0,
- "fired": 0,
- "status": 0
}, - "meta": [ ]
}| company_id required | number Company ID |
| staff_id required | number Employee ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
43877) - ID of the location chain| group_id required | number Location chain ID |
| phone required | string Example: phone='79264037640' Phone to filter clients, required parameter |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token.User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
| success | boolean Execution success status |
| data | string Contains null |
object Object with error message |
{- "success": true,
- "data": {
- "salon_group_id": 312,
- "phone": "+1-315-555-0175",
- "clients": [
- {
- "id": 4240880,
- "company_id": 4564,
- "name": "lx",
- "email": "client@example.com"
}, - {
- "id": 4243272,
- "company_id": 24697,
- "name": "lx",
- "email": "client@example.com"
}
]
}, - "meta": [ ]
}| company_id required | number Company ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array with data objects | |
object Metadata (contains the number of resources found) |
{- "success": true,
- "data": [
- {
- "id": 70,
- "title": "Pedicure chair",
- "instances": [
- {
- "id": 181,
- "title": "Pedicure chair #1",
- "resource_id": 70
}
]
}, - {
- "id": 464,
- "title": "massage room",
- "instances": [
- {
- "id": 1094,
- "title": "Massage room 1st floor",
- "resource_id": 464
}, - {
- "id": 1162,
- "title": "Massage room 2nd floor",
- "resource_id": 464
}
]
}
], - "meta": {
- "count": 2
}
}| company_id required | number Company ID |
| staff_id required | number Employee ID. |
| start_date required | number Example: '' Period start date |
| end_date required | number Example: '' Period end date |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| date required | string date in iso8601 format. |
| is_working required | boolean Free time or not. |
| slots | Array of objects An array of (from, to) working timeslots. |
{- "success": true,
- "data": [
- {
- "date": "2025-09-21T23:00:00.000+03:00",
- "is_working": 1,
- "slots": [
- {
- "from": "10:00",
- "to": "14:00"
}, - {
- "from": "15:00",
- "to": "23:15"
}
]
}, - {
- "date": "2025-09-21T23:00:00.000+03:00",
- "is_working": 1,
- "slots": [
- {
- "from": "10:00",
- "to": "14:30"
}, - {
- "from": "15:00",
- "to": "22:10"
}
]
}, - {
- "date": "2025-09-21T23:00:00.000+03:00",
- "is_working": 0,
- "slots": [ ]
}, - {
- "date": "2025-09-21T23:00:00.000+03:00",
- "is_working": 1,
- "slots": [
- {
- "from": "10:00",
- "to": "14:00"
}, - {
- "from": "15:00",
- "to": "22:00"
}
]
}
], - "meta": [ ]
}| company_id required | number Company ID |
| staff_id required | number Employee ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| date required | string date |
| is_working required | boolean Working date or not |
| slots required | object Array of (from, to) working hours |
The sessions object for the log has the following fields:
| Field | Type | Description |
|---|---|---|
| time | string | Session time (17:30 for example) |
| free | boolean | Free time or busy |
| company_id required | number Company ID |
| date required | string date in iso8601 format. Filter by booking date (eg '2015-09-30') |
| staff_id required | number Employee ID. |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| time required | string Session time |
| is_free required | boolean free time or not |
{- "success": true,
- "data": [
- {
- "time": "10:00",
- "is_free": true
}, - {
- "time": "10:15",
- "is_free": true
}, - {
- "time": "10:30",
- "is_free": true
}, - {
- "time": "10:45",
- "is_free": true
}, - {
- "time": "11:00",
- "is_free": false
}, - {
- "time": "11:15",
- "is_free": false
}, - {
- "time": "11:30",
- "is_free": false
}, - {
- "time": "11:45",
- "is_free": false
}, - {
- "time": "12:00",
- "is_free": false
}, - {
- "time": "12:15",
- "is_free": false
}, - {
- "time": "12:30",
- "is_free": false
}, - {
- "time": "12:45",
- "is_free": false
}, - {
- "time": "13:00",
- "is_free": true
}, - {
- "time": "13:15",
- "is_free": true
}, - {
- "time": "13:30",
- "is_free": true
}, - {
- "time": "13:45",
- "is_free": true
}, - {
- "time": "14:00",
- "is_free": true
}, - {
- "time": "14:15",
- "is_free": true
}, - {
- "time": "14:30",
- "is_free": true
}, - {
- "time": "14:45",
- "is_free": true
}, - {
- "time": "15:00",
- "is_free": true
}, - {
- "time": "15:15",
- "is_free": true
}, - {
- "time": "15:30",
- "is_free": true
}, - {
- "time": "15:45",
- "is_free": true
}, - {
- "time": "16:00",
- "is_free": true
}, - {
- "time": "16:15",
- "is_free": true
}, - {
- "time": "16:30",
- "is_free": false
}, - {
- "time": "16:45",
- "is_free": false
}, - {
- "time": "17:00",
- "is_free": false
}
], - "meta": [ ]
}Filters
| Parameter | Description |
|---|---|
| page | Page number |
| editable_length | Number of clients per page |
| type | Operation type |
| status | Operation status |
| start_date | Period start date |
| end_date | Period end date |
Types of all transactions with cash register
| Meaning | Description |
|---|---|
| 0 | Sales operation – Active for documents of type Visit |
| 1 | Sale return operation – Active for documents of type Visit |
| 2 | Correction operation |
| 4 | Shift opening operation – Opens a new POS shift |
| 5 | Shift closing operation – Closes the current POS shift |
| 9 | Get POS status – Retrieves the current status of the POS device |
| 11 | Get POS team status – Retrieves the status of all POS devices connected to the team |
| 12 | Correction operation |
| 13 | Print X-report – Prints a non-fiscal summary report of the current shift |
| 6 | Cash deposit – Registers a cash-in transaction in the POS |
| 7 | Cash withdrawal – Registers a cash-out transaction in the POS |
Statuses of All POS Operations
| Meaning | Description |
|---|---|
| 0 | Connection error with POS – Unable to establish a connection with the POS device |
| 1 | Success – Operation completed successfully |
| 2 | Sent for printing – The request has been sent to the POS and is waiting for print completion |
| 3 | Runtime error – An error occurred while processing the operation on the POS device |
| 4 | Status check error – Failed to retrieve the current status of the POS |
| 5 | Waiting for POS readiness – Operation is pending until the POS device becomes ready |
Document Types
| Meaning | Description |
|---|---|
| 1 | Sale of products |
| 2 | Provision of services |
| 3 | Arrival of products |
| 4 | Products write-off |
| 5 | Transfer of products |
| 6 | Inventory |
| 7 | Visit |
| 8 | Consumables write-off |
| 9 | Deposit replenishment |
| company_id required | number Company ID |
| page | number Example: page=1 Page number |
| editable_length | number Example: editable_length=25 Number of customers per page |
| type | number Example: type=20 Type of transaction |
| status | number Example: status=6 Operation status |
| start_date | number Example: start_date='' Period start date |
| end_date | number Example: end_date='' Period end date |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer access_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of transactions found) |
{- "success": true,
- "data": [
- {
- "id": 1059,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 1,
- "sum": 10,
- "type": {
- "id": 1,
- "title": "Sales return operation"
}, - "status": {
- "id": 3,
- "title": "Runtime error"
}, - "document": {
- "id": 2045,
- "type": 7,
- "type_title": "Visit"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
], - "meta": {
- "count": 1
}
}Types of all transactions with cash register
| Meaning | Description |
|---|---|
| 0 | Sale operation (active for documents with types "Visit" and "Deposit replenishment") |
| 1 | Sale return operation (active for documents with types "Visit" and "Deposit replenishment") |
| 2 | Correction operation |
| 4 | Shift opening operation – Opens a new POS shift |
| 5 | Shift closing operation – Closes the current POS shift |
| 9 | Get POS status – Retrieves the current status of the POS device |
| 11 | Get POS team status – Retrieves the status of all POS devices connected to the team |
| 12 | Correction operation |
| 13 | Print X-report – Prints a non-fiscal summary report of the current shift |
| 6 | Cash deposit – Registers a cash-in transaction in the POS |
| 7 | Cash withdrawal – Registers a cash-out transaction in the POS |
Document Types
| Meaning | Description |
|---|---|
| 1 | Sale of products |
| 2 | Provision of services |
| 3 | Arrival of products |
| 4 | Products write-off |
| 5 | Transfer of products |
| 6 | Inventory |
| 7 | Visit |
| 8 | Consumables write-off |
| 9 | Deposit replenishment |
| company_id required | number Location ID |
| document_id required | number Document ID |
| type required | number type of operation with cash register (see table of types of all operations) |
| is_pos_enabled | boolean enable POS terminal (default false) |
| success | boolean Execution success status (true) |
object Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "kkm_type": 0,
- "kkm_transactions": [
- {
- "id": 1954,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 0,
- "sum": 0,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 2,
- "title": "Sent for printing"
}, - "document": {
- "id": 164,
- "type": 9,
- "type_title": "Deposit replenishment"
}, - "cashier": {
- "id": 1138453,
- "name": "Jack Smith"
}
}
], - "status": 2,
- "bill_json": [
- [ ]
]
}, - "meta": [ ]
}| document_id required | integer Sales Document ID |
| company_id required | number Location ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "state": {
- "items": [
- {
- "id": 2181520,
- "type": "good",
- "title": "item 12",
- "amount": 1,
- "default_cost_per_unit": 1300,
- "default_cost_total": 1300,
- "client_discount_percent": 10,
- "cost_to_pay_total": 1170
}, - {
- "id": 22017,
- "type": "service",
- "document_id": 8200391,
- "title": "Manicure",
- "amount": 1,
- "default_cost_per_unit": 500,
- "default_cost_total": 500,
- "client_discount_percent": 10,
- "cost_to_pay_total": 450
}
], - "loyalty_transactions": [
- {
- "id": 25042,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 9.9,
- "type_id": 11,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "deposit_transaction_id": 775,
- "chain": {
- "id": 500,
- "title": "YC BE Chain"
}, - "type": {
- "id": 11,
- "title": "Withdrawal from personal account"
}, - "deposit": {
- "id": 220,
- "balance": 990.1,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}, - {
- "id": 25043,
- "document_id": 8201102,
- "amount": 0.1,
- "type_id": 2,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_card_id": 185395,
- "loyalty_program_id": 264,
- "chain": {
- "id": 231,
- "title": "Example chain."
}, - "type": {
- "id": 2,
- "title": "Loyalty programs"
}, - "loyalty_card": {
- "id": 185395,
- "type_id": 265,
- "number": 23100185395,
- "balance": 50.15,
- "type": {
- "id": 265,
- "type": "Loyalty program template test"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}, - "loyalty_program": {
- "id": 264,
- "title": "CASHBACK BigBro",
- "type_id": 7,
- "is_value_percent": true,
- "type": {
- "id": 7,
- "title": "Cumulative cashback (paid)"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "id": 25050,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 100,
- "type_id": 8,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_certificate_id": 339,
- "chain": {
- "id": 79,
- "title": "Bank 24"
}, - "type": {
- "id": 8,
- "title": "Write-off from the certificate"
}, - "loyalty_certificate": {
- "id": 339,
- "balance": 0,
- "applicable_balance": 0,
- "type": {
- "id": 20,
- "title": "Test Certificate",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}
], - "payment_transactions": [
- {
- "id": 6033940,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 32,
- "account": {
- "id": 90218,
- "title": "Cash by default",
- "is_cash": true,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6033941,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 27,
- "account": {
- "id": 90218,
- "title": "cash desk",
- "is_cash": true,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034121,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 43,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring by default",
- "is_cash": false,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034122,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 12,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring",
- "is_cash": false,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}
]
}, - "kkm_state": {
- "last_operation_type": 1,
- "transactions": [
- {
- "id": 2424,
- "document_id": 8200904,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 0,
- "sum": 0,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 1,
- "title": "Successfully"
}, - "document": {
- "id": 7215,
- "type": 1,
- "type_title": "Sale of goods"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
]
}, - "payment_methods": [
- {
- "slug": "account",
- "is_applicable": false,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "account_id": 36785,
- "account": {
- "id": 36785,
- "title": "Cash desk - non-cash",
- "is_cash": false
}
}, - {
- "slug": "loyalty_card",
- "is_applicable": true,
- "applicable_amount": 51.65,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_card_id": 19283,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_program",
- "is_applicable": true,
- "applicable_amount": 234,
- "applicable_count": 0,
- "applicable_value": 20,
- "loyalty_card_id": 19283,
- "loyalty_program_id": 183,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}, - "loyalty_program": {
- "id": 183,
- "title": "permanent discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_abonement",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_abonement_id": 27,
- "loyalty_abonement": {
- "id": 27,
- "is_united_balance": false,
- "united_balance": 0,
- "type": {
- "id": 7,
- "title": "subscription to 5000 QA net",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}, - "balance_container": {
- "links": [
- {
- "count": 5,
- "category": {
- "id": 229680,
- "category_id": 1,
- "title": "Manicure"
}
}, - {
- "count": 5,
- "category": {
- "id": 429813,
- "category_id": 429812,
- "title": "1 Lesson"
}
}
]
}
}
}, - {
- "slug": "loyalty_certificate",
- "is_applicable": true,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_certificate_id": 338,
- "loyalty_certificate": {
- "id": 338,
- "balance": 10000,
- "applicable_balance": 10000,
- "type": {
- "id": 130,
- "title": "test",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "referral_loyalty_program",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_program_id": 424,
- "loyalty_program": {
- "id": 424,
- "title": "Fixed discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "deposit",
- "is_applicable": true,
- "applicable_amount": 9.9,
- "applicable_count": 0,
- "applicable_value": 0,
- "deposit_id": 220,
- "deposit": {
- "id": 220,
- "balance": 1000,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}
]
}, - "meta": [ ]
}As a response, information about the Sale operation is returned
| document_id required | integer Sales Document ID |
| payment_transaction_id required | integer transaction ID |
| company_id required | number Location ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "state": {
- "items": [
- {
- "id": 2181520,
- "type": "good",
- "title": "item 12",
- "amount": 1,
- "default_cost_per_unit": 1300,
- "default_cost_total": 1300,
- "client_discount_percent": 10,
- "cost_to_pay_total": 1170
}, - {
- "id": 22017,
- "type": "service",
- "document_id": 8200391,
- "title": "Manicure",
- "amount": 1,
- "default_cost_per_unit": 500,
- "default_cost_total": 500,
- "client_discount_percent": 10,
- "cost_to_pay_total": 450
}
], - "loyalty_transactions": [
- {
- "id": 25042,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 9.9,
- "type_id": 11,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "deposit_transaction_id": 775,
- "chain": {
- "id": 500,
- "title": "YC BE Chain"
}, - "type": {
- "id": 11,
- "title": "Withdrawal from personal account"
}, - "deposit": {
- "id": 220,
- "balance": 990.1,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}, - {
- "id": 25043,
- "document_id": 8201102,
- "amount": 0.1,
- "type_id": 2,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_card_id": 185395,
- "loyalty_program_id": 264,
- "chain": {
- "id": 231,
- "title": "Example chain."
}, - "type": {
- "id": 2,
- "title": "Loyalty programs"
}, - "loyalty_card": {
- "id": 185395,
- "type_id": 265,
- "number": 23100185395,
- "balance": 50.15,
- "type": {
- "id": 265,
- "type": "Loyalty program template test"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}, - "loyalty_program": {
- "id": 264,
- "title": "CASHBACK BigBro",
- "type_id": 7,
- "is_value_percent": true,
- "type": {
- "id": 7,
- "title": "Cumulative cashback (paid)"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "id": 25050,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 100,
- "type_id": 8,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_certificate_id": 339,
- "chain": {
- "id": 79,
- "title": "Bank 24"
}, - "type": {
- "id": 8,
- "title": "Write-off from the certificate"
}, - "loyalty_certificate": {
- "id": 339,
- "balance": 0,
- "applicable_balance": 0,
- "type": {
- "id": 20,
- "title": "Test Certificate",
- "is_code_required": true
}
}
}
], - "payment_transactions": [
- {
- "id": 6033940,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 32,
- "account": {
- "id": 90218,
- "title": "Cash by default",
- "is_cash": true,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6033941,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 27,
- "account": {
- "id": 90218,
- "title": "cash desk",
- "is_cash": true,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034121,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 43,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring by default",
- "is_cash": false,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034122,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 12,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring",
- "is_cash": false,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}
]
}, - "kkm_state": {
- "last_operation_type": 1,
- "transactions": [
- {
- "id": 2424,
- "document_id": 8200904,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 0,
- "sum": 0,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 1,
- "title": "Successfully"
}, - "document": {
- "id": 7215,
- "type": 1,
- "type_title": "Sale of goods"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
]
}, - "payment_methods": [
- {
- "slug": "account",
- "is_applicable": false,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "account_id": 36785,
- "account": {
- "id": 36785,
- "title": "Cash desk - non-cash",
- "is_cash": false
}
}, - {
- "slug": "loyalty_card",
- "is_applicable": true,
- "applicable_amount": 51.65,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_card_id": 19283,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_program",
- "is_applicable": true,
- "applicable_amount": 234,
- "applicable_count": 0,
- "applicable_value": 20,
- "loyalty_card_id": 19283,
- "loyalty_program_id": 183,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}, - "loyalty_program": {
- "id": 183,
- "title": "permanent discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_abonement",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_abonement_id": 27,
- "loyalty_abonement": {
- "id": 27,
- "is_united_balance": false,
- "united_balance": 0,
- "type": {
- "id": 7,
- "title": "subscription to 5000 QA net",
- "is_code_required": true
}, - "balance_container": {
- "links": [
- {
- "count": 5,
- "category": {
- "id": 229680,
- "category_id": 1,
- "title": "Manicure"
}
}, - {
- "count": 5,
- "category": {
- "id": 429813,
- "category_id": 429812,
- "title": "1 Lesson"
}
}
]
}
}
}, - {
- "slug": "loyalty_certificate",
- "is_applicable": true,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_certificate_id": 338,
- "loyalty_certificate": {
- "id": 338,
- "balance": 10000,
- "applicable_balance": 10000,
- "type": {
- "id": 130,
- "title": "test",
- "is_code_required": true
}
}
}, - {
- "slug": "referral_loyalty_program",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_program_id": 424,
- "loyalty_program": {
- "id": 424,
- "title": "Fixed discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "deposit",
- "is_applicable": true,
- "applicable_amount": 9.9,
- "applicable_count": 0,
- "applicable_value": 0,
- "deposit_id": 220,
- "deposit": {
- "id": 220,
- "balance": 1000,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}
]
}, - "meta": [ ]
}As a response, information about the Sale operation is returned
| document_id required | integer Sales Document ID |
| payment_transaction_id required | integer transaction ID |
| company_id required | number Location ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "state": {
- "items": [
- {
- "id": 2181520,
- "type": "good",
- "title": "item 12",
- "amount": 1,
- "default_cost_per_unit": 1300,
- "default_cost_total": 1300,
- "client_discount_percent": 10,
- "cost_to_pay_total": 1170
}, - {
- "id": 22017,
- "type": "service",
- "document_id": 8200391,
- "title": "Manicure",
- "amount": 1,
- "default_cost_per_unit": 500,
- "default_cost_total": 500,
- "client_discount_percent": 10,
- "cost_to_pay_total": 450
}
], - "loyalty_transactions": [
- {
- "id": 25042,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 9.9,
- "type_id": 11,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "deposit_transaction_id": 775,
- "chain": {
- "id": 500,
- "title": "YC BE chain"
}, - "type": {
- "id": 11,
- "title": "Withdrawal from personal account"
}, - "deposit": {
- "id": 220,
- "balance": 990.1,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}, - {
- "id": 25043,
- "document_id": 8201102,
- "amount": 0.1,
- "type_id": 2,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_card_id": 185395,
- "loyalty_program_id": 264,
- "chain": {
- "id": 231,
- "title": "Example chain."
}, - "type": {
- "id": 2,
- "title": "Loyalty programs"
}, - "loyalty_card": {
- "id": 185395,
- "type_id": 265,
- "number": 23100185395,
- "balance": 50.15,
- "type": {
- "id": 265,
- "type": "Loyalty program template test"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}, - "loyalty_program": {
- "id": 264,
- "title": "CASHBACK BigBro",
- "type_id": 7,
- "is_value_percent": true,
- "type": {
- "id": 7,
- "title": "Cumulative cashback (paid)"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "id": 25050,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 100,
- "type_id": 8,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_certificate_id": 339,
- "chain": {
- "id": 79,
- "title": "Bank 24"
}, - "type": {
- "id": 8,
- "title": "Write-off from the certificate"
}, - "loyalty_certificate": {
- "id": 339,
- "balance": 0,
- "applicable_balance": 0,
- "type": {
- "id": 20,
- "title": "Test Certificate",
- "is_code_required": true
}
}
}
], - "payment_transactions": [
- {
- "id": 6033940,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 32,
- "account": {
- "id": 90218,
- "title": "Cash by default",
- "is_cash": true,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6033941,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 27,
- "account": {
- "id": 90218,
- "title": "cash desk",
- "is_cash": true,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034121,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 43,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring by default",
- "is_cash": false,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034122,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 12,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring",
- "is_cash": false,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}
]
}, - "kkm_state": {
- "last_operation_type": 1,
- "transactions": [
- {
- "id": 2424,
- "document_id": 8200904,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 0,
- "sum": 0,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 1,
- "title": "Successfully"
}, - "document": {
- "id": 7215,
- "type": 1,
- "type_title": "Sale of goods"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
]
}, - "payment_methods": [
- {
- "slug": "account",
- "is_applicable": false,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "account_id": 36785,
- "account": {
- "id": 36785,
- "title": "Cash desk - non-cash",
- "is_cash": false
}
}, - {
- "slug": "loyalty_card",
- "is_applicable": true,
- "applicable_amount": 51.65,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_card_id": 19283,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_program",
- "is_applicable": true,
- "applicable_amount": 234,
- "applicable_count": 0,
- "applicable_value": 20,
- "loyalty_card_id": 19283,
- "loyalty_program_id": 183,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}, - "loyalty_program": {
- "id": 183,
- "title": "permanent discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_abonement",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_abonement_id": 27,
- "loyalty_abonement": {
- "id": 27,
- "is_united_balance": false,
- "united_balance": 0,
- "type": {
- "id": 7,
- "title": "subscription to 5000 QA net",
- "is_code_required": true
}, - "balance_container": {
- "links": [
- {
- "count": 5,
- "category": {
- "id": 229680,
- "category_id": 1,
- "title": "Manicure"
}
}, - {
- "count": 5,
- "category": {
- "id": 429813,
- "category_id": 429812,
- "title": "1 Lesson"
}
}
]
}
}
}, - {
- "slug": "loyalty_certificate",
- "is_applicable": true,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_certificate_id": 338,
- "loyalty_certificate": {
- "id": 338,
- "balance": 10000,
- "applicable_balance": 10000,
- "type": {
- "id": 130,
- "title": "test",
- "is_code_required": true
}
}
}, - {
- "slug": "referral_loyalty_program",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_program_id": 424,
- "loyalty_program": {
- "id": 424,
- "title": "Fixed discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "deposit",
- "is_applicable": true,
- "applicable_amount": 9.9,
- "applicable_count": 0,
- "applicable_value": 0,
- "deposit_id": 220,
- "deposit": {
- "id": 220,
- "balance": 1000,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}
]
}, - "meta": [ ]
}As a response, information about the Sale operation is returned
| document_id required | number Document ID |
| company_id required | number Location ID |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
object Object containing the payment method |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "payment": {
- "method": {
- "slug": "account",
- "account_id": 90218
}, - "amount": 123
}
}{- "success": true,
- "data": {
- "state": {
- "items": [
- {
- "id": 2181520,
- "type": "good",
- "title": "item 12",
- "amount": 1,
- "default_cost_per_unit": 1300,
- "default_cost_total": 1300,
- "client_discount_percent": 10,
- "cost_to_pay_total": 1170
}, - {
- "id": 22017,
- "type": "service",
- "document_id": 8200391,
- "title": "Manicure",
- "amount": 1,
- "default_cost_per_unit": 500,
- "default_cost_total": 500,
- "client_discount_percent": 10,
- "cost_to_pay_total": 450
}
], - "loyalty_transactions": [
- {
- "id": 25042,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 9.9,
- "type_id": 11,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "deposit_transaction_id": 775,
- "chain": {
- "id": 500,
- "title": "YC BE chain"
}, - "type": {
- "id": 11,
- "title": "Withdrawal from personal account"
}, - "deposit": {
- "id": 220,
- "balance": 990.1,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}, - {
- "id": 25043,
- "document_id": 8201102,
- "amount": 0.1,
- "type_id": 2,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_card_id": 185395,
- "loyalty_program_id": 264,
- "chain": {
- "id": 231,
- "title": "Example chain."
}, - "type": {
- "id": 2,
- "title": "Loyalty programs"
}, - "loyalty_card": {
- "id": 185395,
- "type_id": 265,
- "number": 23100185395,
- "balance": 50.15,
- "type": {
- "id": 265,
- "type": "Loyalty program template test"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}, - "loyalty_program": {
- "id": 264,
- "title": "CASHBACK BigBro",
- "type_id": 7,
- "is_value_percent": true,
- "type": {
- "id": 7,
- "title": "Cumulative cashback (paid)"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "id": 25050,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "amount": 100,
- "type_id": 8,
- "created_at": "2025-09-21T23:00:00.000+03:00",
- "loyalty_certificate_id": 339,
- "chain": {
- "id": 79,
- "title": "Bank 24"
}, - "type": {
- "id": 8,
- "title": "Write-off from the certificate"
}, - "loyalty_certificate": {
- "id": 339,
- "balance": 0,
- "applicable_balance": 0,
- "type": {
- "id": 20,
- "title": "Test Certificate",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}
], - "payment_transactions": [
- {
- "id": 6033940,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 32,
- "account": {
- "id": 90218,
- "title": "Cash by default",
- "is_cash": true,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6033941,
- "document_id": 8200904,
- "sale_item_id": 2181442,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 90218,
- "amount": 27,
- "account": {
- "id": 90218,
- "title": "cash desk",
- "is_cash": true,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034121,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 43,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring by default",
- "is_cash": false,
- "is_default": true
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}, - {
- "id": 6034122,
- "document_id": 8201102,
- "sale_item_id": 2181521,
- "sale_item_type": "good",
- "expense_id": 7,
- "account_id": 23182,
- "amount": 12,
- "account": {
- "id": 23182,
- "title": "Cards - acquiring",
- "is_cash": false,
- "is_default": false
}, - "expense": {
- "id": 7,
- "title": "Sale of goods"
}
}
]
}, - "kkm_state": {
- "last_operation_type": 1,
- "transactions": [
- {
- "id": 2424,
- "document_id": 8200904,
- "print_date": "2025-09-21T23:00:00.000+03:00",
- "printed_count": 0,
- "sum": 0,
- "type": {
- "id": 0,
- "title": "Sale operation"
}, - "status": {
- "id": 1,
- "title": "Successfully"
}, - "document": {
- "id": 7215,
- "type": 1,
- "type_title": "Sale of goods"
}, - "cashier": {
- "id": 746310,
- "name": "Jack Smith"
}
}
]
}, - "payment_methods": [
- {
- "slug": "account",
- "is_applicable": false,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "account_id": 36785,
- "account": {
- "id": 36785,
- "title": "Cash desk - non-cash",
- "is_cash": false
}
}, - {
- "slug": "loyalty_card",
- "is_applicable": true,
- "applicable_amount": 51.65,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_card_id": 19283,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_program",
- "is_applicable": true,
- "applicable_amount": 234,
- "applicable_count": 0,
- "applicable_value": 20,
- "loyalty_card_id": 19283,
- "loyalty_program_id": 183,
- "loyalty_card": {
- "id": 19283,
- "type_id": 155,
- "number": 31200019283,
- "balance": 51.65,
- "type": {
- "id": 155,
- "type": "discount card"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}, - "loyalty_program": {
- "id": 183,
- "title": "permanent discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 312,
- "title": "Trinity group"
}
}
}, - {
- "slug": "loyalty_abonement",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_abonement_id": 27,
- "loyalty_abonement": {
- "id": 27,
- "is_united_balance": false,
- "united_balance": 0,
- "type": {
- "id": 7,
- "title": "subscription to 5000 QA net",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}, - "balance_container": {
- "links": [
- {
- "count": 5,
- "category": {
- "id": 229680,
- "category_id": 1,
- "title": "Manicure"
}
}, - {
- "count": 5,
- "category": {
- "id": 429813,
- "category_id": 429812,
- "title": "1 Lesson"
}
}
]
}
}
}, - {
- "slug": "loyalty_certificate",
- "is_applicable": true,
- "applicable_amount": 1170,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_certificate_id": 338,
- "loyalty_certificate": {
- "id": 338,
- "balance": 10000,
- "applicable_balance": 10000,
- "type": {
- "id": 130,
- "title": "test",
- "is_code_required": true
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "referral_loyalty_program",
- "is_applicable": false,
- "applicable_amount": 0,
- "applicable_count": 0,
- "applicable_value": 0,
- "loyalty_program_id": 424,
- "loyalty_program": {
- "id": 424,
- "title": "Fixed discount",
- "type_id": 1,
- "is_value_percent": true,
- "type": {
- "id": 1,
- "title": "Fixed discount"
}, - "chain": {
- "id": 231,
- "title": "Example chain."
}
}
}, - {
- "slug": "deposit",
- "is_applicable": true,
- "applicable_amount": 9.9,
- "applicable_count": 0,
- "applicable_value": 0,
- "deposit_id": 220,
- "deposit": {
- "id": 220,
- "balance": 1000,
- "type": {
- "id": 5,
- "title": "deposit 1"
}
}
}
]
}, - "meta": [ ]
}To use the api and activate access to the settings in the user interface, you need to activate the integration by sending the "Enable integration" request. After a successful connection, access to the section with routing settings will be opened in the chain user interface.
To disable the integration, you can use the "Disable integration" method. After the integration is disabled, access to the user interface settings section is closed, the requests "Call notification" and "Call information saving" are not processed.
To display notifications about an incoming call, the "Call notification" method is used, the call type ("incoming", "outgoing", "internal") is specified in the parameters, but currently notifications are displayed only for the "incoming" value. Notifications are displayed for users defined based on routing settings. When specifying the "user" and "diversion" parameters at the same time, "user" is the priority when searching for routes.
The information about the call is automatically saved to the chain history and to the history of chain companies in accordance with the call routing settings.
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
Request bodies
| command required | string Slug of operation 'setup' |
| type required | string Operation type, in this case 'enable' |
| crm_token required | string CRM-token from the Telephony-Integration in the client's chain section |
| success | boolean Success status (true) |
| data | string Contains null |
object Metadata (contain an "Accepted" message) |
{- "command": "setup",
- "type": "enable",
- "crm_token": "7cf262d6-1656-43f9-86ac-2826bdc125d2"
}{- "success": true,
- "meta": {
- "message": "Accepted"
}
}This endpoint is designed to get a list of calls in a location, taking into account filters and pagination
| salon_id required | number Location ID. |
| date_from required | string Sample start date. |
| date_to required | string Sample start end. |
| phone | string Phone number. |
| types | Array of strings Items Enum: "incoming" "outgoing" "internal" Call types list |
| statuses | Array of strings Items Enum: "success" "missed" "cancel" "busy" "notallowed" "notavailable" "notfound" Call statuses list |
| page | number Page number |
| limit | number <= 1000 Amount of elements on page |
| success | boolean (Successful response status) Response status. |
Array of objects Calls list | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
{- "salon_id": 615243,
- "date_from": "2023-01-01",
- "date_to": "2023-02-01",
- "phone": "79111234567",
- "types": [
- "incoming",
- "internal"
], - "statuses": [
- "success",
- "cancel"
], - "page": 1,
- "limit": 25
}{- "success": true,
- "data": [
- {
- "id": 8923525,
- "client_id": 51342134,
- "caller_phone": "791112345678",
- "duration": 244,
- "status": "success",
- "type": "outgoing",
- "call_date": "2023-01-17 23:52:21"
}, - {
- "id": 66795308,
- "client_id": 0,
- "caller_phone": "791112345678",
- "record_link": "",
- "duration": 0,
- "status": "missed",
- "type": "incoming",
- "call_date": "2023-01-17 12:31:12"
}
]
}| chain_id required | number Example: 123 Chain ID. |
| abonementId required | number Example: 123 Membership ID. |
| freeze_till required | string The date until which the membership will be frozen. |
{- "freeze_till": "string"
}[- {
- "success": "true",
- "data": [
- {
- "id": 123,
- "number": 123456,
- "balance_string": "Services (x5)",
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "activated_date": "2025-09-21T23:00:00.000+03:00",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 0,
- "period_unit_id": 1,
- "status": {
- "id": 2,
- "title": "activated",
- "extended_title": "activated"
}, - "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 9,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}, - "type": {
- "id": 896,
- "salon_group_id": 279982,
- "title": "Subscription for everything",
- "period": 0,
- "period_unit_id": 1,
- "allow_freeze": true,
- "freeze_limit": 0,
- "is_allow_empty_code": true,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "is_code_required": false,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}
}
}
], - "meta": {
- "count": 1
}
}
]| chain_id required | number Example: 123 Chain ID. |
| abonementId required | number Example: 123 Membership ID. |
[- {
- "success": "true",
- "data": [
- {
- "id": 123,
- "number": 123456,
- "balance_string": "Services (x5)",
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "activated_date": "2025-09-21T23:00:00.000+03:00",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 0,
- "period_unit_id": 1,
- "status": {
- "id": 2,
- "title": "activated",
- "extended_title": "activated"
}, - "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 9,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}, - "type": {
- "id": 896,
- "salon_group_id": 279982,
- "title": "Subscription for everything",
- "period": 0,
- "period_unit_id": 1,
- "allow_freeze": true,
- "freeze_limit": 0,
- "is_allow_empty_code": true,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "is_code_required": false,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}
}
}
], - "meta": {
- "count": 1
}
}
]| chain_id required | number Example: 123 Chain ID. |
| abonementId required | number Example: 123 Membership ID. |
| period required | number Period duration |
| period_unit_id required | number Period type (1 - day, 2 - week, 3 - month, 4 - year) |
{- "period": 0,
- "period_unit_id": 0
}[- {
- "success": "true",
- "data": [
- {
- "id": 123,
- "number": 123456,
- "balance_string": "Services (x5)",
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "activated_date": "2025-09-21T23:00:00.000+03:00",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 0,
- "period_unit_id": 1,
- "status": {
- "id": 2,
- "title": "activated",
- "extended_title": "activated"
}, - "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 9,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}, - "type": {
- "id": 896,
- "salon_group_id": 279982,
- "title": "Subscription for everything",
- "period": 0,
- "period_unit_id": 1,
- "allow_freeze": true,
- "freeze_limit": 0,
- "is_allow_empty_code": true,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "is_code_required": false,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}
}
}
], - "meta": {
- "count": 1
}
}
]| chain_id required | number Example: 123 Chain ID. |
| abonementId required | number Example: 123 Membership ID. |
| united_balance_services_count required | number Number of services for a membership with a pooled balance |
required | Array of objects Transfer service amount for a membership with a separate balance |
{- "united_balance_services_count": 0,
- "services_balance_count": [
- {
- "service_id": 0,
- "balance": 0
}
]
}[- {
- "success": false,
- "meta": {
- "message": "Can't change balance"
}
}
]| chain_id required | number Example: 123 Chain ID. |
| created_after | string Example: created_after=2025-09-21T23:00:00.000+03:00 Creation date from (filter by creation date). |
| created_before | string Example: created_before=2025-09-21T23:00:00.000+03:00 Creation date by (filter by creation date). |
| abonements_ids | Array of numbers List of identifiers for the filter. |
| page | number Example: page=1 Page number. |
| count | number Example: count=25 Number of appointments per page. |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
[- {
- "success": "true",
- "data": [
- {
- "id": 123,
- "number": 123456,
- "balance_string": "Services (x5)",
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "activated_date": "2025-09-21T23:00:00.000+03:00",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 0,
- "period_unit_id": 1,
- "status": {
- "id": 2,
- "title": "activated",
- "extended_title": "activated"
}, - "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 9,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}, - "type": {
- "id": 896,
- "salon_group_id": 279982,
- "title": "Subscription for everything",
- "period": 0,
- "period_unit_id": 1,
- "allow_freeze": true,
- "freeze_limit": 0,
- "is_allow_empty_code": true,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "is_code_required": false,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Services"
}
}
]
}
}
}, - {
- "id": 720,
- "number": 208867,
- "balance_string": "Some services (x10)",
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 0,
- "period_unit_id": 1,
- "status": {
- "id": 3,
- "title": "Overdue",
- "extended_title": "Overdue"
}, - "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Some services"
}
}
]
}, - "type": {
- "id": 897,
- "salon_group_id": 279982,
- "title": "Subscription for everything",
- "period": 0,
- "period_unit_id": 1,
- "allow_freeze": true,
- "freeze_limit": 0,
- "is_allow_empty_code": true,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "is_code_required": false,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 7182839,
- "category_id": 1,
- "title": "Some services"
}
}
]
}
}
}
], - "meta": {
- "count": 2
}
}
]Returns a list of client's memberships by phone
| company_id required | number Location ID |
| phone required | number Customer phone number |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of subscriptions found) |
{- "success": true,
- "data": [
- {
- "id": 659878,
- "number": "788376",
- "balance_string": "Surfing (x10)",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 9999,
- "period_unit_id": 3,
- "status": {
- "id": 1,
- "title": "Released",
- "extended_title": "Released"
}, - "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 3129591,
- "category_id": 1,
- "title": "Surfing"
}
}
]
}, - "type": {
- "id": 97804,
- "salon_group_id": 145071,
- "title": "89999",
- "period": 9999,
- "period_unit_id": 3,
- "allow_freeze": false,
- "freeze_limit": 0,
- "is_allow_empty_code": false,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 3129591,
- "category_id": 1,
- "title": "Surfing"
}
}
]
}
}
}
], - "meta": {
- "count": 1
}
}Returns a list of memberships of an authorized user
| company_id required | number Location ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of subscriptions found) |
{- "success": true,
- "data": [
- {
- "id": 659878,
- "number": "788376",
- "balance_string": "Surfing (x10)",
- "is_frozen": false,
- "freeze_period": 0,
- "period": 9999,
- "period_unit_id": 3,
- "status": {
- "id": 1,
- "title": "Released",
- "extended_title": "Released"
}, - "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 3129591,
- "category_id": 1,
- "title": "Surfing"
}
}
]
}, - "type": {
- "id": 97804,
- "salon_group_id": 145071,
- "title": "89999",
- "period": 9999,
- "period_unit_id": 3,
- "allow_freeze": false,
- "freeze_limit": 0,
- "is_allow_empty_code": false,
- "is_united_balance": false,
- "united_balance_services_count": 0,
- "balance_container": {
- "links": [
- {
- "count": 10,
- "category": {
- "id": 3129591,
- "category_id": 1,
- "title": "Surfing"
}
}
]
}
}
}
], - "meta": {
- "count": 1
}
}Returns a list of client gift cards by phone
| Attribute | Type | Description |
|---|---|---|
| id | int | Gift card ID |
| number | string | Gift card code |
| balance | decimal | Current balance |
| default_balance | decimal | Initial balance |
| type_id | int | Gift card type identifier |
| status_id | int | Status ID |
| created_date | timestamp | Date of sale |
| expiration_date | datetime | Burn date |
| type | object | Object with gift card type information |
| status | object | An object with information about the current gift card status |
The type array contains the following objects:
| Attribute | Type | Description |
|---|---|---|
| id | int | Gift card type identifier |
| title | string | Type name |
| balance | decimal | Gift card denomination |
| is_multi | boolean | Is it available for multiple debits |
| company_group_id | int | ID of the chain where the certificate type was created |
| item_type_id | int | Restriction on the use of redemption points. 0 - no limit, 1 - services only, 2 - some services + all products, 3 - some services, 4 - products only |
| expiration_type_id | int | The ID of the expiration limit. 0 - unlimited, 1 - fixed date, 2 - fixed term |
| expiration_date | timestamp | Burn date of all gift cards. Populated with expiration_type_id = 1 |
| expiration_timeout | int | Validity period of gift card. Populated with expiration_type_id = 2 |
| expiration_timeout_unit_id | int | Time units. 1 - Day, 2 - Week, 3 - Month, 4 - Year |
| is_allow_empty_code | boolean | Sale without code |
| item_type | object | Object with item_type_id and its name |
| copmany_id required | number Location ID |
| phone required | number Customer phone number |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of certificates found) |
{- "success": true,
- "data": [
- {
- "id": 409726,
- "number": "888",
- "balance": 9000,
- "default_balance": 9000,
- "type_id": 27841,
- "status_id": 2,
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "expiration_date": "2025-09-21T23:00:00.000+03:00",
- "type": {
- "id": 27841,
- "title": "certificate 9000",
- "balance": 9000,
- "is_multi": true,
- "company_group_id": 128284,
- "item_type_id": 0,
- "expiration_type_id": 2,
- "expiration_timeout": 365,
- "expiration_timeout_unit_id": 1,
- "is_allow_empty_code": false,
- "item_type": {
- "id": 0,
- "title": "No limits"
}
}, - "status": {
- "id": 2,
- "title": "activated"
}
}
], - "meta": {
- "count": 1
}
}Returns a list of authorized user gift cards
| company_id required | number Location ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of certificates found) |
{- "success": true,
- "data": [
- {
- "id": 409726,
- "number": "888",
- "balance": 9000,
- "default_balance": 9000,
- "type_id": 27841,
- "status_id": 2,
- "created_date": "2025-09-21T23:00:00.000+03:00",
- "expiration_date": "2025-09-21T23:00:00.000+03:00",
- "type": {
- "id": 27841,
- "title": "certificate 9000",
- "balance": 9000,
- "is_multi": true,
- "company_group_id": 128284,
- "item_type_id": 0,
- "expiration_type_id": 2,
- "expiration_timeout": 365,
- "expiration_timeout_unit_id": 1,
- "is_allow_empty_code": false,
- "item_type": {
- "id": 0,
- "title": "No limits"
}
}, - "status": {
- "id": 2,
- "title": "activated"
}
}
], - "meta": {
- "count": 1
}
}| country_id | number Country ID to get cities from |
| company_id | number Location ID. If passed, the city of the location will also be returned, regardless of whether it belongs to the specified country or not |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "id": 2,
- "country_id": 1,
- "title": "New York"
}, - {
- "id": 1040,
- "country_id": 30,
- "title": "Belfast"
}, - {
- "id": 1201,
- "country_id": 38,
- "title": "București"
}, - {
- "id": 1334,
- "country_id": 31,
- "title": "Budapest"
}
], - "meta": [ ]
}The response object has the following fields:
| Field | Type | Description |
|---|---|---|
| image_binded | boolean | Status of linking images to an entity |
| image_group | object | Image group object |
| entity required | string Example: "master" entity name (master/service) |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string form-data |
| Authorization required | string Bearer partner_token, User user_token |
| company_id | number Location ID for image binding (for entity=service) |
| service_id | number Service ID for image binding (for entity=service) |
| master_id | number Employee ID for image binding (for entity=master) |
| image required | string transferred image (image/jpeg, image/png) |
object (ImageGroup) | |
required | object (ImageGroup) |
{- "success": true,
- "data": {
- "image_binded": false,
- "image_group ": {
- "id": 72256,
- "entity": "",
- "entity_id": 0,
- "images": {
- "basic": {
- "id": 186826,
- "width": 373,
- "height": 280,
- "type": "jpeg",
- "image_group_id": 72256,
- "version": "basic"
}
}
}
}, - "meta": [ ]
}The response object has the following fields:
| Field | Type | Description |
|---|---|---|
| success | boolean | Deletion result |
| entity required | string entity name (master/service) |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string form-data |
| Authorization required | string Bearer partner_token, User user_token |
| image_group_id required | number Image group ID to delete |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
object (LicenseOption) | |
| active required | number Is the subscription active |
| deactivation_date required | string Subscription expiration date |
| id required | number Subscription ID |
| name required | string Subscription name |
| options required | Array of objects Subscription options |
| salon_id required | number Company ID |
| staff_limit required | number Employee limit |
| start_date required | string Subscription start date |
{- "success": true,
- "data": {
- "id": 1,
- "salon_id": 4523464,
- "staff_limit": 5,
- "deactivation_date": "08.11.2019",
- "start_date": "07.05.2025",
- "name": "Start",
- "active": 1,
- "options": [
- {
- "id": 3,
- "title": "Online payment"
}
]
}, - "meta": [ ]
}| recordToken required | string Short entry token |
| success | boolean Execution success status (true) |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "is_review_submitted": false,
- "page_title": "Leave feedback",
- "master": {
- "id": 58961,
- "name": "Alexey Uvarov",
- "company_id": 28939,
- "specialization": "Permanent Makeup, Artistic Tattoo",
- "rating": 5,
- "show_rating": 1,
- "prepaid": "forbidden",
- "position": {
- "id": 2185,
- "title": "Master PM"
}
}, - "company": {
- "id": 28939,
- "title": "\"Eyes-n-Lips\" New York",
- "address": "New York, 787 Jackson Drive"
}, - "tips": [ ],
- "record": {
- "id": 8219891,
- "payed_cost": "2000",
- "date": "2017-08-11T15:00:00+0000"
}, - "currency": {
- "id": 1,
- "iso": "RUB",
- "name": "US Dollar",
- "symbol": "USD",
- "is_symbol_after_amount": true
}, - "agreement_links": {
}, - "language": {
- "id": 1,
- "locale": "en-US",
- "iso": "usa"
}
}, - "meta": [ ]
}| recordToken required | string Short entry token |
| rating required | integer <int32> Rating for the review (number of stars from 1 to 5) |
| text | string Feedback text |
| tips_amount | number <double> Tip amount |
| redirect_prefix | string The prefix part of the url that will be redirected to after returning from the payment form |
{- "rating": 5,
- "text": "Excellent master!",
- "tips_amount": 22.5,
}{- "success": true,
- "meta": [ ]
}| company_id required | integer location ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of found masters) |
{- "success": true,
- "data": [
- {
- "id": 3120,
- "location_id": 4564,
- "staff_id": 1071804,
- "hash": "1a27116c-726d-4cec-a7dd-7bd6d669a8c1",
- "status": 1,
- "status_title": "new settings",
- "is_enabled": false,
- "landing_external": "https://app.alteg.io/tips/external/4564/1a27116c-726d-4cec-a7dd-7bd6d669a8c1/",
- "staff": {
- "id": 1071804,
- "name": "Testimonials Branch Business Example",
- "specialization": "Reviews"
}
}, - {
- "id": 1,
- "location_id": 4564,
- "staff_id": 37695,
- "hash": "abf52f53-e94c-41e8-9f76-93485fd76e5e",
- "status": 1,
- "status_title": "new settings",
- "is_enabled": false,
- "landing_external": "https://app.alteg.io/tips/external/4564/abf52f53-e94c-41e8-9f76-93485fd76e5e/",
- "staff": {
- "id": 37695,
- "name": "Kim Kardashian",
- "specialization": "Cosmetologist-makeup artist",
- "user": {
- "id": 746310,
- "name": "James Smith",
- "email": "j.smith@example.com",
- "phone": "+1-315-555-0175"
}, - "position": {
- "id": 452,
- "title": "Masseur"
}
}
}
]
}| master_tips_settings_id required | integer tip settings id |
| company_id required | number Company ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of found masters) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "location_id": 253859,
- "staff_id": 742418,
- "hash": "ba816199-eecf-4bd2-9f1d-db470545bfaf",
- "status": 3,
- "status_title": "pending account",
- "is_enabled": true,
- "landing_external": "https://app.alteg.io/tips/external/253859/ba816199-eecf-4bd2-9f1d-db470545bfaf/",
- "invite_sms_sent": false,
- "staff": {
- "id": 742418,
- "name": "Fusa",
- "specialization": "specialist",
- "employee": {
- "id": 733043,
- "phone": "+1-315-555-0175"
}, - "user": {
- "id": 1553930,
- "name": "James Smith",
- "email": "j.smith@example.com",
- "phone": "+1-315-555-0175"
}, - "position": {
- "id": 103883,
- "title": "Yogist"
}
}
}, - {
- "id": 152763,
- "location_id": 253859,
- "staff_id": 743018,
- "hash": "b7c81cab-290a-4b0a-ad05-9c4b98ef3565",
- "status": 4,
- "status_title": "everything is set",
- "is_enabled": true,
- "landing_external": "https://app.alteg.io/tips/external/253859/b7c81cab-290a-4b0a-ad05-9c4b98ef3565/",
- "invite_sms_sent": false,
- "staff": {
- "id": 743018,
- "name": "Natasha M",
- "specialization": "manicurist",
- "employee": {
- "id": 733547,
- "phone": "+1-315-555-0175"
}, - "user": {
- "id": 6259059,
- "name": "Alice Smith",
- "email": "a.smith@example.com",
- "phone": "+1-315-555-0175"
}, - "position": {
- "id": 103731,
- "title": "Manicurist"
}
}
}
], - "meta": {
- "count": 2
}
}| company_id required | integer location id |
| master_tips_settings_id required | integer tip settings id |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array of objects with data | |
object Metadata (contains the number of found masters) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "location_id": 253859,
- "staff_id": 742418,
- "hash": "ba816199-eecf-4bd2-9f1d-db470545bfaf",
- "status": 3,
- "status_title": "pending account",
- "is_enabled": true,
- "landing_external": "https://app.alteg.io/tips/external/253859/ba816199-eecf-4bd2-9f1d-db470545bfaf/",
- "invite_sms_sent": false,
- "staff": {
- "id": 742418,
- "name": "Fusa",
- "specialization": "specialist",
- "employee": {
- "id": 733043,
- "phone": "+1-315-555-0175"
}, - "user": {
- "id": 1553930,
- "name": "James Smith",
- "email": "j.smith@example.com",
- "phone": "79774510087"
}, - "position": {
- "id": 103883,
- "title": "Yogist"
}
}
}, - {
- "id": 152763,
- "location_id": 253859,
- "staff_id": 743018,
- "hash": "b7c81cab-290a-4b0a-ad05-9c4b98ef3565",
- "status": 4,
- "status_title": "everything is set",
- "is_enabled": true,
- "landing_external": "https://app.alteg.io/tips/external/253859/b7c81cab-290a-4b0a-ad05-9c4b98ef3565/",
- "invite_sms_sent": false,
- "staff": {
- "id": 743018,
- "name": "Natasha M",
- "specialization": "manicurist",
- "employee": {
- "id": 733547,
- "phone": "+1-315-555-0175"
}, - "user": {
- "id": 6259059,
- "name": "Alice Smith",
- "email": "a.smith@example.com",
- "phone": "+1-315-555-0175"
}, - "position": {
- "id": 103731,
- "title": "Manicurist"
}
}
}
], - "meta": {
- "count": 2
}
}The method allows company owner to search payroll calculations for the period for an employee.
| company_id required | number Example: 123 ID of a company. |
| staff_id required | number Example: 123 ID of an employee. |
| date_from required | string Example: date_from=2023-03-01 Start from date. |
| date_to required | string Example: date_to=2023-03-31 End to date. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
Array of objects (Mutual settlements) | |
object (Meta object with response results count) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": [
- {
- "id": 123,
- "company_id": 456,
- "staff_id": 789,
- "amount": 1000,
- "status": "confirmed",
- "date_create": "2023-03-03",
- "date_from": "2023-03-01",
- "date_to": "2023-03-02",
- "comment": "Calculation per day"
}
], - "meta": {
- "count": 1
}
}The method allows company owner to get details of a specific payroll calculation.
| company_id required | number Example: 123 ID of a company. |
| staff_id required | number Example: 123 ID of an employee. |
| calculation_id required | number Example: 789 ID of a salary calculation. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
object (Salary calculation object with details) | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": {
- "id": 123,
- "company_id": 456,
- "staff_id": 789,
- "amount": 1000,
- "status": "confirmed",
- "date_create": "2023-03-03",
- "date_from": "2023-03-01",
- "date_to": "2023-03-02",
- "comment": "Calculation per day",
- "salary_items": [
- {
- "date": "2023-03-01",
- "time": "12:00",
- "item_id": 123,
- "item_type_slug": "record",
- "salary_sum": "10",
- "record_id": 123,
- "client_id": 456,
- "cost": "1000",
- "paid": {
- "money_sum": "900",
- "discount_sum": "30",
- "bonus_sum": "70",
- "certificate_sum": "0",
- "abonement_sum": "0",
- "deposit_sum": "0"
}, - "salary_calculation_info": {
- "criteria_title": "Applied calculation criterium",
- "param_title": "Applied calculation parameter",
- "scheme_title": "Applied calculation scheme"
}, - "targets": [
- {
- "target_type_slug": "service",
- "target_id": 321,
- "title": "Cuttings",
- "cost": "1000",
- "net_cost": "500",
- "salary_sum": "10",
- "salary_promotion_sum": "1",
- "salary_calculation": {
- "type_slug": "percent",
- "value": 1.5,
- "description": "1.5% of cost"
}
}
], - "salary_discrepancy": {
- "reason": "updated_rule",
- "actual_sum": "15",
- "difference_sum": "5"
}
}
], - "currency": {
- "id": 2,
- "iso": "USD",
- "name": "US Dollar",
- "symbol": "$",
- "is_symbol_after_amount": false
}
}, - "meta": [ ]
}The method allows you to get salary calculation schemes count for an employee before trying to obtain calculation data.
| company_id required | number Example: 123 ID of a company. |
| staff_id required | number Example: 123 ID of an employee. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
object (Salary schemes count) | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": {
- "staff_id": 1112684,
- "salary_schemes_count": 2
}, - "meta": [ ]
}The method allows company owner to get mutual settlements of an employee.
| company_id required | number Example: 123 ID of a company. |
| staff_id required | number Example: 123 ID of an employee. |
| date_from required | string Example: date_from=2023-03-01 Start from date. |
| date_to required | string Example: date_to=2023-03-31 End to date. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
object (Mutual settlements) Mutual settlements. | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "total_sum": {
- "income": "0",
- "expense": "0",
- "balance": "240746.48"
}, - "currency": {
- "symbol": "$"
}
}, - "meta": [ ]
}The method allows company owner to get mutual settlements of an employee grouped by date.
| company_id required | number Example: 123 ID of a company. |
| staff_id required | number Example: 123 ID of an employee. |
| date_from required | string Example: date_from=2023-03-01 Start from date. |
| date_to required | string Example: date_to=2023-03-31 End to date. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
object (Mutual settlements grouped by date) Mutual settlements grouped by date. | |
object (Meta object with response results count) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "payroll_daily": [
- {
- "date": "2023-03-01",
- "payroll_sum": {
- "income": "0",
- "expense": "0",
- "balance": "240746.48"
}
}
], - "currency": {
- "symbol": "$"
}
}, - "meta": {
- "count": 1
}
}The method allows company owner to get the calculation for the period for an employee.
| company_id required | number Example: 123 ID of a company. |
| staff_id required | number Example: 123 ID of an employee. |
| date_from required | string Example: date_from=2023-03-01 Start from date. |
| date_to required | string Example: date_to=2023-03-31 End to date. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
object (Mutual settlements) Mutual settlements. | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "working_days_count": 32,
- "working_hours_count": 353,
- "group_services_count": 3,
- "services_count": 0,
- "services_sum": "0",
- "goods_sales_count": 0,
- "goods_sales_sum": "0",
- "total_sum": "0",
- "salary": "70600",
- "currency": {
- "symbol": "$"
}
}, - "meta": [ ]
}The method allows company owner to get the calculation for the period for an employee grouped by date.
| company_id required | number Example: 123 ID of a company. |
| staff_id required | number Example: 123 ID of an employee. |
| date_from required | string Example: date_from=2023-03-01 Start from date. |
| date_to required | string Example: date_to=2023-03-31 End to date. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
object (Payroll for a period for an employee grouped by date) Payroll for a period for a specific employee grouped by date. | |
object (Meta object with response results count) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "period_calculation_daily": [
- {
- "date": "2023-03-01",
- "period_calculation": {
- "working_days_count": 32,
- "working_hours_count": 353,
- "group_services_count": 3,
- "services_count": 0,
- "services_sum": "0",
- "goods_sales_count": 0,
- "goods_sales_sum": "0",
- "total_sum": "0",
- "salary": "70600"
}
}
], - "currency": {
- "symbol": "$"
}
}, - "meta": {
- "count": 1
}
}The method allows you to get mutual settlements of a specific employee. In the user's access rights, the checkbox "Access to payroll only for a specific employee" must be specified.
| company_id required | number Example: 123 ID of a company. |
| staff_id required | number Example: 123 ID of an employee. |
| date_from required | string Example: date_from=2023-03-01 Start from date. |
| date_to required | string Example: date_to=2023-03-31 End to date. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
object (Mutual settlements) Mutual settlements. | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "total_sum": {
- "income": "0",
- "expense": "0",
- "balance": "240746.48"
}, - "currency": {
- "symbol": "$"
}
}, - "meta": [ ]
}The method allows you to get own salary calculation schemes for a specific employee. In the user's access rights, the checkbox "Access to payroll only for a specific employee" must be specified.
| company_id required | number Example: 123 ID of a company. |
| staff_id required | number Example: 123 ID of an employee. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
Array of objects (Salary scheme object) | |
object (Meta object with response results count) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
{- "success": true,
- "data": [
- {
- "staff_id": 1112684,
- "date_start": "2025-09-21T23:00:00.000+03:00",
- "date_end": "2025-09-21T23:00:00.000+03:00",
- "salary_scheme": {
- "id": 28681,
- "title": "Service 20%"
}
}, - {
- "staff_id": 1112684,
- "date_start": "2025-09-21T23:00:00.000+03:00",
- "salary_scheme": {
- "id": 28680,
- "title": "Service 30%"
}
}
], - "meta": {
- "count": 2
}
}The method allows you to get the calculation for the period for a specific employee. In the user's access rights, the checkbox "Access to payroll only for a specific employee" must be checked.
| company_id required | number Example: 123 ID of a company. |
| staff_id required | number Example: 123 ID of an employee. |
| date_from required | string Example: date_from=2023-03-01 Start from date. |
| date_to required | string Example: date_to=2023-03-31 End to date. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| success | boolean (Successful response status) Response status. |
object (Payroll for a period for an employee) Payroll for a period for a specific employee. | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "success": true,
- "data": {
- "working_days_count": 32,
- "working_hours_count": 353,
- "group_services_count": 3,
- "services_count": 0,
- "services_sum": "0",
- "goods_sales_count": 0,
- "goods_sales_sum": "0",
- "total_sum": "0",
- "salary": "70600",
- "currency": {
- "symbol": "$"
}
}, - "meta": [ ]
}The method allows you to get notification settings in a location.
| company_id required | number Company ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer bearer_token, USer user_token |
| success | boolean Execution success status |
Array of objects Array of objects | |
object Metadata (contains the number of objects) |
{- "success": true,
- "data": [
- {
- "type": "record_create_online_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 1
}
}, - {
- "type": "record_move_admin",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "license_expire",
- "channels": {
- "push": 1,
- "sms": 1,
- "email": 1
}
}, - {
- "type": "record_create_offline_admin",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 1
}
}, - {
- "type": "record_create_offline_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_create_online_admin",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 1
}
}, - {
- "type": "record_delete_admin",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 1
}
}, - {
- "type": "record_delete_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_move_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}
], - "meta": {
- "count": 9
}
}The method allows you to get notification settings for a particular location user.
| company_id required | number Company ID |
| user_id required | number User ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer bearer_token, User user_token |
| success | boolean Execution success status |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": {
- "mode": "staff",
- "notification_types": [
- {
- "type": "record_create_online_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 1
}
}, - {
- "type": "record_create_offline_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_delete_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_move_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "license_expire",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}
]
}, - "meta": [ ]
}The method allows you to change the user's PUSH notification settings. The type of notification to be changed (record_create_online_staff or record_create_online_admin, etc.) should be selected based on the type of notification specified by the user (mode: admin or mode: staff)
| company_id required | number Company ID |
| user_id required | number User ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer bearer_token, User user_token |
Array of objects Array of objects |
| success | boolean Execution success status |
object Object with data | |
| meta | Array of objects Metadata (empty array) |
{- "notification_types": [
- {
- "type": "record_create_online_admin",
- "channels": {
- "push": 1
}
}, - {
- "type": "record_create_offline_admin",
- "channels": {
- "push": 1
}
}, - {
- "type": "record_delete_admin",
- "channels": {
- "push": 1
}
}, - {
- "type": "record_move_admin",
- "channels": {
- "push": 1
}
}, - {
- "type": "license_expire",
- "channels": {
- "push": 1
}
}
]
}{- "success": true,
- "data": {
- "mode": "staff",
- "notification_types": [
- {
- "type": "record_create_online_staff",
- "channels": {
- "push": 1,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_create_offline_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_delete_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "record_move_staff",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}, - {
- "type": "license_expire",
- "channels": {
- "push": 0,
- "sms": 0,
- "email": 0
}
}
]
}, - "meta": [ ]
}The method allows you to create a product
| company_id required | number Location ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| title required | string Product Name |
| print_title | string Title to be printed on receipt |
| article | string vendor code |
| barcode | string Barcode |
| category_id required | integer Product category ID |
| cost | number <float> Selling price |
| actual_cost | number <float> Cost price |
| sale_unit_id required | integer Sales unit |
| service_unit_id required | integer Write-off unit |
| unit_equals | number <float> The ratio of the unit of measure for sale to the unit of measure for write-off |
| critical_amount | number <float> critical residue |
| desired_amount | number <float> Desired balance |
| netto | number <float> Net weight |
| brutto | number <float> Gross weight |
| comment | string A comment |
| tax_variant | integer Taxation system |
| vat_id | integer VAT |
| success | boolean Execution success status (true) |
Array of objects Array with data objects | |
| meta | Array of objects Metadata (empty array) |
| success | boolean Execution success status |
| data | string Contains null |
object Contains an error message |
{- "title": "Shampoo",
- "print_title": "Shampoo",
- "article": "123",
- "barcode": "123",
- "category_id": 289632,
- "cost": 1000,
- "actual_cost": 500,
- "sale_unit_id": 216762,
- "service_unit_id": 216762,
- "unit_equals": 100,
- "critical_amount": 1,
- "desired_amount": 1,
- "netto": 200,
- "brutto": 250,
- "comment": "Test comment 123",
- "tax_variant": 0,
- "vat_id": 3
}{- "success": true,
- "data": [
- {
- "title": "Shampoo 1",
- "value": "Shampoo 1",
- "label": "Shampoo 1 (123)",
- "good_id": "123456",
- "cost": "100500",
- "unit_id": "4835",
- "unit_short_title": "PC",
- "service_unit_id": "3548",
- "service_unit_short_title": "gr",
- "actual_cost": "1050",
- "unit_actual_cost": "105",
- "unit_actual_cost_format": "105 r",
- "unit_equals": "10",
- "barcode": "123",
- "loyalty_abonement_type_id": 0,
- "loyalty_certificate_type_id": 0,
- "loyalty_allow_empty_code": 1,
- "critical_amount": 0,
- "desired_amount": 0,
- "actual_amounts": [
- {
- "storage_id": "987",
- "amount": "1000000"
}
], - "last_change_date": "2017-01-01T12:00:00+0400"
}
], - "meta": [ ]
}term: Name, article or barcode
page (number, 1) - Page number (not used if good_id is passed)
count (number, 25) - Number of products on the page (not used if good_id is passed)
category_id (number, 777) - Id of the product category (not used if good_id is passed)
changed_after (string) - filtering products changed/created since a specific date and time (not used if good_id is passed)
changed_before (string) - filtering products changed/created before a specific date and time (not used if good_id is passed)
| company_id required | number Company ID |
| good_id required | number Product ID (if you need to get a specific product) |
| term | string name, article number or barcode |
| page | number Example: page=1 page number |
| count | number Example: count=25 number of products per page |
| category_id | number Product category ID |
| changed_after | string Example: changed_after=2025-09-21T23:00:00.000+03:00 filtering products modified/created since a specific date and time |
| changed_before | string Example: changed_before=2017-01-01T12:00:00+0400 filtering products modified/created before a specific date and time |
| Accept required | string Example: application/vnd.api.v2+json e.g. application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| success | boolean Execution success status (true) |
Array of objects Array with data objects | |
| meta | Array of objects Metadata (empty array) |
{- "success": true,
- "data": [
- {
- "title": "Shampoo 1",
- "value": "Shampoo 1",
- "label": "Shampoo 1 (123)",
- "good_id": "123456",
- "cost": "100500",
- "unit_id": "4835",
- "unit_short_title": "PC",
- "service_unit_id": "3548",
- "service_unit_short_title": "gr",
- "actual_cost": "1050",
- "unit_actual_cost": "105",
- "unit_actual_cost_format": "105 r",
- "unit_equals": "10",
- "barcode": "123",
- "loyalty_abonement_type_id": 0,
- "loyalty_certificate_type_id": 0,
- "loyalty_allow_empty_code": 1,
- "critical_amount": 0,
- "desired_amount": 0,
- "actual_amounts": [
- {
- "storage_id": "987",
- "amount": "1000000"
}
], - "last_change_date": "2017-01-01T12:00:00+0400"
}
], - "meta": [ ]
}The method allows you to change the product parameters. When editing units of measure for an item that already has inventory operations, you must add an array of rules for recalculating units of measure - correction_rules. Otherwise, the array is optional.
| company_id required | number Location ID |
| good_id required | number Item ID |
| Accept required | string application/vnd.api.v2+json |
| Content-Type required | string application/json |
| Authorization required | string Bearer partner_token, User user_token |
| title required | string Product Name |
| print_title | string Title to be printed on receipt |
| article | string vendor code |
| barcode | string Barcode |
| category_id required | integer Product category ID |
| cost | number <float> Selling price |
| actual_cost | number <float> Cost price |
| sale_unit_id required | integer Sales unit |
| service_unit_id required | integer Write-off unit |
| unit_equals | number <float> The ratio of the unit of measure for sale to the unit of measure for write-off |
| critical_amount | number <float> critical residue |
| desired_amount | number <float> Desired balance |
| netto | number <float> Net weight |
| brutto | number <float> Gross weight |
| comment | string A comment |
| tax_variant | integer Taxation system |
| vat_id | integer VAT |
Массив объектов Массив правил преобразования единиц измерения (требуется при наличии операций по инвентаризации товара) |
| успех | булев Статус успешного выполнения (истина) |
Массив объектов Массив с объектами данных | |
| мета | Массив объектов Метаданные (пустой массив) |
| успех | булев Статус успешного выполнения |
| данные | нить Содержит ноль |
объект Объект с сообщением об ошибке |
| успех | булев Статус успешного выполнения |
| данные | нить Содержит ноль |
объект Содержит сообщение об ошибке |
{- "title": "Shampoo",
- "print_title": "Shampoo",
- "article": "123",
- "barcode": "123",
- "category_id": 289632,
- "cost": 1000,
- "actual_cost": 500,
- "sale_unit_id": 216762,
- "service_unit_id": 216762,
- "unit_equals": 100,
- "critical_amount": 1,
- "desired_amount": 1,
- "netto": 200,
- "brutto": 250,
- "comment": "Test comment 123",
- "tax_variant": 0,
- "vat_id": 3,
- "correction_rules": [
- {
- "type": 1,
- "base_unit": "service"
}, - {
- "type": 2,
- "base_unit": "service"
}, - {
- "type": 3,
- "base_unit": "sale"
}, - {
- "type": 4,
- "base_unit": "sale"
}, - {
- "type": 5,
- "base_unit": "sale"
}
]
}{- "success": true,
- "data": [
- {
- "title": "Shampoo 1",
- "value": "Shampoo 1",
- "label": "Shampoo 1 (123)",
- "good_id": "123456",
- "cost": "100500",
- "unit_id": "4835",
- "unit_short_title": "PC",
- "service_unit_id": "3548",
- "service_unit_short_title": "gr",
- "actual_cost": "1050",
- "unit_actual_cost": "105",
- "unit_actual_cost_format": "105 r",
- "unit_equals": "10",
- "barcode": "123",
- "loyalty_abonement_type_id": 0,
- "loyalty_certificate_type_id": 0,
- "loyalty_allow_empty_code": 1,
- "critical_amount": 0,
- "desired_amount": 0,
- "actual_amounts": [
- {
- "storage_id": "987",
- "amount": "1000000"
}
], - "last_change_date": "2017-01-01T12:00:00+0400"
}
], - "meta": [ ]
}Метод позволяет удалить продукт
| company_id необходимый | число Идентификатор местоположения |
| good_id необходимый | число Идентификатор товара |
| Принимать необходимый | нить приложение/vnd.api.v2+json |
| Тип контента необходимый | нить приложение/json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| Принимать необходимый | нить например application/vnd.api.v2+json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| Тип контента необходимый | нить приложение/json |
| успех | булев Статус успешного выполнения (истина) |
объект ( корневой тип для company_get_online_settings_response_data_field_data_types ) | |
| мета | Массив объектов метаданные |
{- "success": true,
- "data": {
- "confirm_number": false,
- "any_master": true,
- "seance_delay_step": 90,
- "activity_online_record_clients_count_max": 1
}, - "meta": [ ]
}| Принимать необходимый | нить например application/vnd.api.v2+json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| Тип контента необходимый | нить приложение/json |
| номер_подтверждения необходимый | булев Подтвердите номер клиента по SMS |
| любой_мастер необходимый | булев Режим «Любой сотрудник» |
| seance_delay_step необходимый | целое число [ 0 .. 1380 ] Задержка до следующего сеанса, в минутах от 0 до 23 часов (включительно) с шагом 30 минут |
| activity_online_record_clients_count_max необходимый | целое число [ 1 .. 255 ] Максимальное количество мест в одном групповом мероприятии |
| успех | булев Статус успешного выполнения (истина) |
объект ( корневой тип для company_get_online_settings_response_data_field_data_types ) | |
| мета | Массив объектов метаданные |
{- "confirm_number": false,
- "any_master": true,
- "seance_delay_step": 90,
- "activity_online_record_clients_count_max": 1
}{- "success": true,
- "data": {
- "confirm_number": false,
- "any_master": true,
- "seance_delay_step": 90,
- "activity_online_record_clients_count_max": 1
}, - "meta": [ ]
}| Принимать необходимый | нить например application/vnd.api.v2+json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| Тип контента необходимый | нить приложение/json |
| успех | булев Статус успешного выполнения (истина) |
объект ( корневой тип для company_get_timetable_settings_response_data_field_data_types ) | |
| мета | Массив объектов метаданные |
{- "success": true,
- "data": {
- "record_type": 0,
- "activity_record_clients_count_max": 1
}, - "meta": [ ]
}| Принимать необходимый | нить например application/vnd.api.v2+json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| Тип контента необходимый | нить приложение/json |
| тип_записи необходимый | целое число [ 0 .. 2 ] Тип записи по умолчанию: 0 — Смешанная встреча, 1 — Индивидуальная встреча, 2 — Групповое событие |
| activity_record_clients_count_max необходимый | целое число [ 1 .. 255 ] Максимальное количество мест в одном групповом мероприятии |
| успех | булев Статус успешного выполнения (истина) |
объект ( корневой тип для company_get_timetable_settings_response_data_field_data_types ) | |
| мета | Массив объектов метаданные |
{- "record_type": 0,
- "activity_record_clients_count_max": 1
}{- "success": true,
- "data": {
- "record_type": 90,
- "activity_record_clients_count_max": 1
}, - "meta": [ ]
}| company_id необходимый | число Идентификатор компании |
| Принимать необходимый | нить например application/vnd.api.v2+json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| Тип контента необходимый | нить приложение/json |
необходимый | Массив объектов ( корневой тип BookformSettingsResponse ) Массив данных |
| мета необходимый | Массив объектов Метаданные (содержат общее количество форм книг) |
| успех необходимый | булев Статус успеха (истина) |
{- "success": true,
- "data": [
- {
- "id": 1,
- "title": "Name",
- "is_default": false,
- "description": "Description",
- "without_menu": false,
- "service_step_default": 0,
- "service_step_hide": false,
- "master_step_default": 0,
- "master_step_hide": false,
- "service_step_num": 2,
- "master_step_num": 1,
- "datetime_step_num": 3,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "#1c84c6",
- "button_animation": true,
- "html_code": "",
- "ab_test_enabled": false
}
], - "meta": [ ]
}| company_id необходимый | число Идентификатор компании |
| Принимать необходимый | нить например application/vnd.api.v2+json |
| Авторизация необходимый | нить Предъявитель partner_token, Пользователь user_token |
| Тип контента необходимый | нить приложение/json |
| заголовок необходимый | нить Название виджета бронирования |
| описание | нить По умолчанию: "" Описание виджета бронирования |
| is_default | булев По умолчанию: ложно Default booking widget flag |
| without_menu | boolean Default: false Step mode flag |
| service_step_default | number Service ID |
| service_step_hide | boolean Default: false Service Hiding Flag |
| master_step_default | number Employee ID |
| master_step_hide | boolean Default: false Employee hide flag |
| service_step_num | number Service step sequence number |
| master_step_num | number Sequence number of the wizard step |
| datetime_step_num | number Sequence number of the date and time step |
| show_button | boolean Default: true Button visibility flag |
| button_position | string Default: "bottom right" Enum: "bottom right" "bottom left" "top right" "top left " Button location on the page |
| form_position | string Default: "right" Enum: "right" "left" Panel position on the page |
| button_color | string Default: "#1c84c6" Button color |
| button_animation | boolean Default: true Button animation enable flag |
required | object (Root Type BookformSettingsResponse) Booking Widget Settings |
| meta required | Array of objects Metadata |
| success required | boolean Success status (true) |
{- "title": "string",
- "description": "",
- "is_default": false,
- "without_menu": false,
- "service_step_default": 0,
- "service_step_hide": false,
- "master_step_default": 0,
- "master_step_hide": false,
- "service_step_num": 0,
- "master_step_num": 0,
- "datetime_step_num": 0,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "#1c84c6",
- "button_animation": true
}{- "success": true,
- "data": {
- "id": 1,
- "title": "Name",
- "is_default": false,
- "description": "Description",
- "without_menu": false,
- "service_step_default": 0,
- "service_step_hide": false,
- "master_step_default": 0,
- "master_step_hide": false,
- "service_step_num": 2,
- "master_step_num": 1,
- "datetime_step_num": 3,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "#1c84c6",
- "button_animation": true,
- "html_code": "",
- "ab_test_enabled": false
}, - "meta": [ ]
}| company_id required | number Company ID |
| form_id required | number Booking widget ID |
| Accept required | string e.g. application/vnd.api.v2+json |
| Authorization required | string Bearer partner_token, User user_token |
| Content-Type required | string application/json |
required | object (Root Type BookformSettingsResponse) Booking Widget Settings |
| meta required | Array of objects Metadata |
| success required | boolean Success status (true) |
{- "success": true,
- "data": {
- "id": 1,
- "title": "Name",
- "is_default": false,
- "description": "Description",
- "without_menu": false,
- "service_step_default": 0,
- "service_step_hide": false,
- "master_step_default": 0,
- "master_step_hide": false,
- "service_step_num": 2,
- "master_step_num": 1,
- "datetime_step_num": 3,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "#1c84c6",
- "button_animation": true,
- "html_code": "",
- "ab_test_enabled": false
}, - "meta": [ ]
}| company_id required | number Company ID |
| form_id required | number Booking widget ID |
| Accept required | string e.g. application/vnd.api.v2+json |
| Authorization required | string Bearer partner_token, User user_token |
| Content-Type required | string application/json |
| company_id required | number Company ID |
| form_id required | number Booking widget ID |
| Accept required | string e.g. application/vnd.api.v2+json |
| Authorization required | string Bearer partner_token, User user_token |
| Content-Type required | string application/json |
| title required | string Name of the booking widget |
| description required | string Booking widget description |
| is_default required | boolean Default booking widget flag |
| without_menu required | boolean Step mode flag |
| service_step_default required | number Service ID |
| service_step_hide required | boolean Service Hiding Flag |
| master_step_default required | number Employee ID |
| master_step_hide required | boolean Employee hide flag |
| service_step_num required | number Service step sequence number |
| master_step_num required | number Sequence number of the wizard step |
| datetime_step_num required | number Sequence number of the date and time step |
| show_button required | boolean Button Visibility Step |
| button_position required | string Enum: "bottom right" "bottom left" "top right" "top left" Button location on the page |
| form_position required | string Enum: "right" "left" Panel position on the page |
| button_color required | string Button color |
| button_animation required | boolean Button animation enable flag |
required | object (Root Type BookformSettingsResponse) Booking Widget Settings |
| meta required | Array of objects Metadata |
| success required | boolean Success status (true) |
{- "title": "string",
- "description": "string",
- "is_default": true,
- "without_menu": true,
- "service_step_default": 0,
- "service_step_hide": true,
- "master_step_default": 0,
- "master_step_hide": true,
- "service_step_num": 0,
- "master_step_num": 0,
- "datetime_step_num": 0,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "string",
- "button_animation": true
}{- "success": true,
- "data": {
- "id": 1,
- "title": "Name",
- "is_default": false,
- "description": "Description",
- "without_menu": false,
- "service_step_default": 0,
- "service_step_hide": false,
- "master_step_default": 0,
- "master_step_hide": false,
- "service_step_num": 2,
- "master_step_num": 1,
- "datetime_step_num": 3,
- "show_button": true,
- "button_position": "bottom right",
- "form_position": "right",
- "button_color": "#1c84c6",
- "button_animation": true,
- "html_code": "",
- "ab_test_enabled": false
}, - "meta": [ ]
}The method allows you to get a list of current positions in the company
| company_id required | number Company ID |
required | Array of objects (StaffPosition) Array of objects with data |
| meta required | Array of objects Metadata (contains the number of posts found) |
| success required | boolean Execution success status (true) |
{- "data": [
- {
- "id": 123,
- "title": "Job title"
}
], - "meta": [
- { }
], - "success": true
}Creates a new position in a company; position is created as a chain entity and at the same time linked to a company initiated its creation.
| company_id required | number Example: 123 ID of a company. |
| Accept required | string Example: application/vnd.api.v2+json Should be equal to |
| Content-Type required | string Example: application/json Should be equal to |
| title required | string Title of a position. |
| success | boolean (Successful response status) Response status. |
object (Object of model "Position") Data for an existing position in a chain. | |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Response error message) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
| meta | object (Empty meta object) Additional response data. |
| success | boolean (Unsuccessful response status) Response status. |
| data | object or null (No data in response) Response data. |
object (Request validation error message) Additional response data. |
{- "title": "Position"
}{- "success": true,
- "data": {
- "id": 123,
- "chain_id": 123,
- "title": "Position",
- "description": "Position description",
- "services_binding_type": 0,
- "rules_required_fields": [
- "employee_name",
- "surname",
- "patronymic",
- "date_admission",
- "date_registration_end",
- "phone_number",
- "citizenship",
- "sex",
- "passport_data",
- "inn",
- "number_insurance_certificates"
], - "only_chain_appointment": false
}, - "meta": { }
}The method allows you to get the main indicators of the company for the selected period and compare with the previous period of the same duration
| company_id required | number Company ID |
| date_from required | string <date> Start date of the analyzed period |
| date_to required | string <date> End date of the analyzed period (included in the report) |
| staff_id | integer ID of the company employee whose work needs to be analyzed |
| position_id | integer Company position ID to analyze the work of all employees belonging to the same position |
| user_id | integer The user ID of the company whose work you want to analyze |
required | object (AnalyticsReportOverallStats) Summary indicators |
| meta required | Array of objects metadata |
| success required | boolean Execution success status (true) |
{- "data": {
- "income_total_stats": {
- "current_sum": "12.56",
- "previous_sum": "10.34",
- "change_percent": 21,
- "currency": {
- "symbol": "USD"
}
}, - "income_services_stats": {
- "current_sum": "12.56",
- "previous_sum": "10.34",
- "change_percent": 21,
- "currency": {
- "symbol": "USD"
}
}, - "income_goods_stats": {
- "current_sum": "12.56",
- "previous_sum": "10.34",
- "change_percent": 21,
- "currency": {
- "symbol": "USD"
}
}, - "income_average_stats": {
- "current_sum": "12.56",
- "previous_sum": "10.34",
- "change_percent": 21,
- "currency": {
- "symbol": "USD"
}
}, - "income_average_services_stats": {
- "current_sum": "12.56",
- "previous_sum": "10.34",
- "change_percent": 21,
- "currency": {
- "symbol": "USD"
}
}, - "fullness_stats": {
- "current_percent": 12.1,
- "previous_percent": 10.2,
- "change_percent": 18
}, - "record_stats": {
- "current_completed_count": 150,
- "current_completed_percent": 75,
- "current_pending_count": 30,
- "current_pending_percent": 15,
- "current_canceled_count": 20,
- "current_canceled_percent": 10,
- "current_total_count": 200,
- "previous_total_count": 180,
- "change_percent": 11
}, - "client_stats": {
- "total_count": 1000,
- "new_count": 50,
- "new_percent": 10,
- "return_count": 450,
- "return_percent": 90,
- "active_count": 500,
- "lost_count": 20,
- "lost_percent": 2
}
}, - "meta": [
- { }
], - "success": true
}| company_id required | number Company ID |
| date_from required | string <date> Start date of the analyzed period |
| date_to required | string <date> End date of the analyzed period (included in the report) |
| staff_id | integer ID of the company employee whose work needs to be analyzed |
| position_id | integer Company position ID to analyze the work of all employees belonging to the same position |
| user_id | integer The user ID of the company whose work you want to analyze |
| label | string Name of data series |
| data | Array of integers (AnalyticsReportOverallChartDailyRowItem) [ items <int32 >[ items <int32 > ] ] Data for each day. Each day is an array of two numbers. The first number is the timestamp of the beginning of the day in the UTC zone, the second number is the value of the indicator on that day. |
[- {
- "label": "Revenue",
- "data": [
- [
- "2025-09-21T23:00:00.000+03:00",
- 1000
], - [
- "2025-09-21T23:00:00.000+03:00",
- 500
]
]
}
]| company_id необходимый | число Идентификатор компании |
| дата_от необходимый | строка < дата > Дата начала анализируемого периода |
| дата_до необходимый | строка < дата > Дата окончания анализируемого периода (включена в отчет) |
| staff_id | целое число Идентификатор сотрудника компании, работу которого необходимо проанализировать |
| ID пользователя | целое число Идентификатор пользователя компании, работу которой вы хотите проанализировать |
| этикетка | нить Название серии данных |
| данные | Массив целых чисел ( AnalyticsReportOverallChartDailyRowItem ) [ items < int32 > [ items < int32 > ] ] Данные за каждый день. Каждый день представлен массивом из двух чисел. Первое число — это метка времени начала дня в часовом поясе UTC, второе — значение индикатора в этот день. |
[- {
- "label": "Number of records",
- "data": [
- [
- "2025-09-21T23:00:00.000+03:00",
- 1000
], - [
- "2025-09-21T23:00:00.000+03:00",
- 500
]
]
}, - {
- "label": "Number of online entries",
- "data": [
- [
- "2025-09-21T23:00:00.000+03:00",
- 1000
], - [
- "2025-09-21T23:00:00.000+03:00",
- 500
]
]
}, - {
- "label": "Number of new customer entries",
- "data": [
- [
- "2025-09-21T23:00:00.000+03:00",
- 1000
], - [
- "2025-09-21T23:00:00.000+03:00",
- 500
]
]
}
]| company_id необходимый | число Идентификатор компании |
| дата_от необходимый | строка < дата > Дата начала анализируемого периода |
| дата_до необходимый | строка < дата > Дата окончания анализируемого периода (включена в отчет) |
| staff_id | целое число Идентификатор сотрудника компании, работу которого необходимо проанализировать |
| ID пользователя | целое число Идентификатор пользователя компании, работу которой вы хотите проанализировать |
| этикетка | нить Название серии данных |
| данные | Массив целых чисел ( AnalyticsReportOverallChartDailyRowItem ) [ items < int32 > [ items < int32 > ] ] Данные за каждый день. Каждый день представлен массивом из двух чисел. Первое число — это метка времени начала дня в часовом поясе UTC, второе — значение индикатора в этот день. |
[- {
- "label": "Working day occupancy, %",
- "data": [
- [
- "2025-09-21T23:00:00.000+03:00",
- 89.7
], - [
- "2025-09-21T23:00:00.000+03:00",
- 91.2
]
]
}
]| company_id необходимый | число Идентификатор компании |
| дата_от необходимый | строка < дата > Дата начала анализируемого периода |
| дата_до необходимый | строка < дата > Дата окончания анализируемого периода (включена в отчет) |
| staff_id | целое число Идентификатор сотрудника компании, работу которого необходимо проанализировать |
| ID пользователя | целое число Идентификатор пользователя компании, работу которой вы хотите проанализировать |
| этикетка | нить Название индикатора |
| данные | целое число Значение индикатора |
[- {
- "label": "Administrator",
- "data": 10
}, - {
- "label": "Widget",
- "data": 30
}
]| company_id необходимый | число Идентификатор компании |
| дата_от необходимый | строка < дата > Дата начала анализируемого периода |
| дата_до необходимый | строка < дата > Дата окончания анализируемого периода (включена в отчет) |
| staff_id | целое число Идентификатор сотрудника компании, работу которого необходимо проанализировать |
| ID пользователя | целое число Идентификатор пользователя компании, работу которой вы хотите проанализировать |
| этикетка | нить Название индикатора |
| данные | целое число Значение индикатора |
[- {
- "label": "Customer expectation",
- "data": 10
}, - {
- "label": "The client came",
- "data": 30
}, - {
- "label": "Customer confirmed",
- "data": 5
}, - {
- "label": "Client didn't come",
- "data": 2
}
]